Django REST API with JSON web token (JWT)
JWT ๋ก ์ธ์ฆํ๊ธฐ!
I. ์ค๋น์ฌํญ
1. REST framework JWT Auth ํจํค์ง ์ค์น
ํจํค์ง ๊ณต์๋ฌธ์: https://jpadilla.github.io/django-rest-framework-jwt/
$ pip install djangorestframework-jwt
2. settings.py
์ค์ ๋ณ๊ฒฝ
settings.py
์ค์ ๋ณ๊ฒฝ(1) REST_FRAMEWORK
์ค์ ๋ณ๊ฒฝ
REST_FRAMEWORK
์ค์ ๋ณ๊ฒฝREST_FRAMEWORK
์ค์ ๋ณ์ ์๋์ ๋ด์ฉ ์ถ๊ฐauthentication ๋ฐฉ์์ JSONWebTokenAuthentication ๋ฐฉ์์ผ๋ก ์ค์ ํ๊ฒ ๋ค๋ ์๋ฏธ
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # Token ์์ ๊ต์ฒด # 'rest_framework.authentication.TokenAuthentication', ] }
(2) REST_USE_JWT
์ค์ ์ถ๊ฐ
REST_USE_JWT
์ค์ ์ถ๊ฐDRF auth๊ฐ JWT๋ฅผ ์ฌ์ฉํ๊ฒ ์ค์ ์ถ๊ฐ
REST_USE_JWT = True
(3) JWT_AUTH
์ค์ ์ถ๊ฐ
JWT_AUTH
์ค์ ์ถ๊ฐJWT ๊ด๋ จ ์ ๋ณด ์ค์ (์์)
์์ธํ ์ฌํญ์ ๊ณต์๋ฌธ์ ์ฐธ๊ณ (https://jpadilla.github.io/django-rest-framework-jwt/)
import datetime JWT_AUTH = { 'JWT_SECRET_KEY': SECRET_KEY, 'JWT_ALGORITHM': 'HS256', 'JWT_ALLOW_REFRESH': True, # 1์ฃผ์ผ๊ฐ ์ ํจํ ํ ํฐ 'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7), # 28์ผ ๋ง๋ค ๊ฐฑ์ ๋จ(์ ํจ ๊ธฐ๊ฐ ์ฐ์ฅ์) 'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=28), }
II. ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ
settings.py
settings.py
# DRF auth settings
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_jwt.authentication.JSONWebTokenAuthentication', # Token ์์ ๊ต์ฒด
# 'rest_framework.authentication.TokenAuthentication',
]
}
# DRF auth๊ฐ JWT๋ฅผ ์ฌ์ฉํ๊ฒ ํ๋ ์ค์
REST_USE_JWT = True
# JWT Token ๊ด๋ จ ์ ๋ณด ์ค์ : ์ด๋ค ์ ๋ณด๋ฅผ ๋ด์ ๋ณด๋ผ์ง
import datetime
JWT_AUTH = {
'JWT_SECRET_KEY': SECRET_KEY,
'JWT_ALGORITHM': 'HS256',
'JWT_ALLOW_REFRESH': True,
# 1์ฃผ์ผ๊ฐ ์ ํจํ ํ ํฐ
'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7),
# 28์ผ ๋ง๋ค ๊ฐฑ์ ๋จ(์ ํจ ๊ธฐ๊ฐ ์ฐ์ฅ์)
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=28),
}
โ
```
Last updated
Was this helpful?