DRF with JWT

JWT 로 인증하기!

I. 준비사항

1. REST framework JWT Auth 패키지 설치

pip install djangorestframework-jwt

2. settings.py 설정 변경

(1) 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 설정 추가

  • DRF auth가 JWT를 사용하게 설정 추가

REST_USE_JWT = True

(3) JWT_AUTH 설정 추가

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

# 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