[Recipe: Remake] JWT 도입
JWT?
JSON Web Token(JWT)는 RFC 7519에서 정의된 개방형 표준이다. 두 집단 사이의 클레임을 안전하게 표현한다. 클레임은 모든 비즈니스 프로세스와 연관될 수 있지만 보통 아이덴티티와 그 소속을 나타내는데 사용된다.
JWT 내의 클레임은 JSON 객체로 인코딩되고, 보통 MAC을 이용해 디지털 서명한다.
(생략)
Simple JWT 설치
1
2
$ pip install djangorestframework-simplejwt
$ pip freeze > requirements.txt
설정
Simple JWT 문서에서 설명하는 대로 설정한다.
settings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
INSTALLED_APPS = [
...
'rest_framework_simplejwt',
...
]
...
REST_FRAMEWORK = {
...
'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_simplejwt.authentication.JWTAuthentication',),
...
}
accounts/urls.py
1
2
3
4
5
6
7
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
urlpatterns = [
...
path('login/', TokenObtainPairView.as_view(), name='login'),
path('login/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]
회원탈퇴의 경우 계정이 삭제된 후 refresh 토큰이 남아있으면 로그인을 계속 할 수 있다는 문제가 있는데, 이는 Simple JWT의 블랙리스트 기능을 사용하면 해결할 수 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.