728x90
320x100
장고 실무 심화 3주차 : 회원기능
drf에서 jwt사용하기 (simplejwt)
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/
settings.py 수정
INSTALLED_APPS에 'rest_framework_simplejwt', 추가
REST_FRAMEWORK = {
...
'DEFAULT_AUTHENTICATION_CLASSES': (
...
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
...
}
#users/urls.py
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
)
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
포스트맨에 (새 워크스페이스) 새 collection : user
POST 방식으로 http://127.0.0.1:8000/users/api/token/
body > raw > json
jwt 정보 확인해보기
"access" 부분을 Encoded에 넣어보면
뭔가 사진같은 게 나옴
빨간부분 - 헤더 : 알고리즘, 타입
보라색 - PAYLOAD : 데이터 ( 토큰타입, 만료날짜, id값)
초록색 - 인증 : 시크릿키를 넣으면 Invalid Signature >> Signature Verified
"refresh" 값을 넣으면 token_type이 "refresh"
"access" : 접근용, 만료날짜가 지나면 만료
"refresh" : 만료 후 갱신, access 토큰 재발급
- 만료기간 세팅
공식문서 > Settings
https://django-rest-framework-simplejwt.readthedocs.io/en/latest/settings.html#settings
settings.py에서
SIMPLE_JWT 안에
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=5),
"REFRESH_TOKEN_LIFETIME": timedelta(days=1),
"ROTATE_REFRESH_TOKENS": False,
"BLACKLIST_AFTER_ROTATION": False,
"UPDATE_LAST_LOGIN": False,
등등을 지정해준다.
300x250
반응형
GitHub 댓글