Django/Authentication
[Django] DRF의 simpleJWT
츄르릅
2022. 5. 6. 17:48
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/getting_started.html#usage
Getting started — Simple JWT 5.1.0.post11+g58b1874 documentation
© Copyright 2020, David Sanders Revision 58b18740.
django-rest-framework-simplejwt.readthedocs.io
DRF 에서 JWT 인증에서 simple-jwt 라이브러리를 사용할 것을 권장한다고 공식 문서에 나와있다.
(jwt 라이브러리는 업데이트 중지)
1. simple-jwt 라이브러리 설치 및 세팅
simple-jwt 라이브러리를 설치한다.
pip install djangorestframework-simplejwt
# settings.py
REST_FRAMEWORK = {
...
'DEFAULT_AUTHENTICATION_CLASSES': (
...
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
...
}
INSTALLED_APPS = [
...
'rest_framework_simplejwt',
...
]
# urls.py
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
TokenVerifyView,
)
urlpatterns = [
...
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/verify/', TokenVerifyView.as_view(), name='token_verify'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
...
]
simple-jwt 라이브러리에서 제공해 주는 뷰를 보자.
- TokenObtainPairView : 토큰을 생성해주는 뷰
- TokenVerifyView : 토큰 유효성 확인 뷰
- TokenRefreshView : refresh 토큰으로 access 토큰을 재밸급하는 뷰
localhost:8000/accounts/token/ 에서 username과 password data를 body에 입력하고 POST 메서드로 request 하면 refresh token과 access token이 생성되는 것을 볼수 있다.