파이썬 장고를 사용한 JWT 토큰을 활용한 사용자 인증 방법

이번 포스트에서는 파이썬 장고(Django) 프레임워크를 사용하여 JWT(Json Web Token) 토큰을 활용한 사용자 인증 방법에 대해 알아보겠습니다. JWT는 토큰 기반의 인증 방식으로, 사용자의 인증 정보를 안전하게 저장하고 전달할 수 있는 방법입니다.

JWT 토큰이란?

JWT는 JSON 형식으로 인코딩된 토큰을 의미합니다. 토큰은 사용자의 인증 정보를 포함하고 있으며, 사용자의 요청을 인증할 때마다 토큰을 함께 전달하여 인증을 수행합니다. 이러한 토큰은 서버측에서 발급하고, 클라이언트는 토큰을 저장하고 자신을 인증하는데 사용합니다.

JWT 토큰 사용 방법

  1. 파이썬 장고 프로젝트에 djangorestframeworkdjangorestframework-jwt 패키지를 설치합니다.
pip install djangorestframework
pip install djangorestframework-jwt
  1. 파이썬 장고 설정 파일(settings.py)에 다음과 같은 코드를 추가합니다.
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    ],
}

JWT_AUTH = {
    'JWT_SECRET_KEY': 'SECRET_KEY',
    'JWT_ALGORITHM': 'HS256',
    'JWT_ALLOW_REFRESH': True,
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
    'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
}
  1. 사용자 로그인 시 JWT 토큰을 생성하는 코드를 작성합니다.
from rest_framework_jwt.views import obtain_jwt_token

def login(request):
    # 사용자 인증 과정 수행 후 JWT 토큰 생성
    token = obtain_jwt_token(request)
    return HttpResponse(token)
  1. 사용자가 인증이 필요한 API 요청을 할 때, JWT 토큰을 포함하여 요청합니다.
import requests

headers = {
    'Authorization': 'JWT 토큰',
}

response = requests.get('http://example.com/api/endpoint', headers=headers)

위의 예시를 통해 JWT 토큰을 이용하여 파이썬 장고에서 사용자 인증을 구현하는 방법을 알아보았습니다. JWT 토큰을 활용하면 사용자의 인증 정보를 토큰으로 안전하게 전달할 수 있으며, 토큰의 만료 기간을 설정하여 보안을 더욱 강화할 수 있습니다.

#파이썬 #장고 #JWT #사용자인증