1. Create login API viewset
2. Set token header using ModHeader extension
1. Create login API viewset
(1) 구현
# views.py
...
# ObtainAuthToken: AuthToken을 만드는 view
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.settings import api_settings
...
class UserLoginApiView(ObtainAuthToken):
"""Handle creating user authentication tokens"""
# 일반적으로 제공되는 상속용 view들은
# renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES 을 기본적으로 가지고 있다
# 이것은 해당 기능이 django admin 페이지에 나타나도록 해주는데
# ObtainAuthToken은 이 코드가 없다. 따라서
# 직접 코드를 적어줌으로써 django admin 페이지에 나타나게 해준다.
renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES
# urls.py
...
from django.urls import path
...
urlpatterns = [
...
path('login/', views.UserLoginApiView.as_view()),
...
]
(2) 테스트


2. Set token header using ModHeader extension
(1) modheader extension으로 header에 token 붙이기

(2) authenticated가 안 되었을 때 접근 불가능했던 것 다시 확인해보기


realworld 프로그램에서는 이렇게 mod header chrome extension을 사용하지 않지. 클라이언트에 직접 token을 전달해서 이용할 수 있게 해야한다. 예를 들어 JS는 fetch library, Python은 request library을 사용한다.
'BE > Python & Django REST API' 카테고리의 다른 글
| [Django REST API] 13. Deploying on AWS (0) | 2021.12.26 |
|---|---|
| [Django REST API] 12. Create profile feed API (0) | 2021.12.25 |
| [Django REST API] 10. Create Profiles API (0) | 2021.12.22 |
| [Django REST API] 9. Introduction to Viewsets (0) | 2021.12.20 |
| [Django REST API] 8. Introduction to API Views (0) | 2021.12.18 |
댓글