JWT(Jason Web Token) 을 사용해보자
우선 공식 사이트에서 시키는 대로
pip install djangorestframework-simplejwt
로 설치를 해준 뒤 settings.py 에 아래를 추가해준다.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
)
}
urls.py 에
from django.contrib import admin
from django.urls import path, include
import users
urlpatterns = [path("admin/", admin.site.urls), path("users/", include("users.urls"))]
이렇게 적어주고 users/urls.py 에
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
)
from django.urls import path
urlpatterns = [
path("api/token/", TokenObtainPairView.as_view(), name="token_obtain_pair"),
path("api/token/refresh/", TokenRefreshView.as_view(), name="token_refresh"),
]
여기까지 해준 뒤 postman 으로 post 요청을 보내보면
views.py 에 별도로 코드를 써놓지 않았음에도 없는 id 나 비밀번호를 넣으면 에러메세지를 보내고 알맞은 정보를 입력하면 토큰을 생성해서 보내주는 것을 볼 수 있다.
- "access" : 실제 접근할 때 사용되는 토큰 유저 정보 등을 담고 있다.
- "refresh" : access 토큰의 사용기간이 만료되었을 때 refresh 토큰으로 다시 접근하여 access 토큰을 갱신해야 한다.
나온 토큰은
https://jwt.io/
에서 settins.py 에 있는 secret key 를 넣고 decode 해보면 signiture verify 를 해볼 수 있다.