본문 바로가기

Django/Authentication

[Django] DRF의 simpleJWT

 

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/ 에서 usernamepassword data를 body에 입력하고 POST 메서드로 request 하면 refresh tokenaccess token이 생성되는 것을 볼수 있다.