Django
Chapter 14-4 Django에서 Simple-JWT로 토큰 발급하기 완전 정복
Chansman
2025. 5. 21. 18:04
🔐 Django에서 Simple-JWT로 토큰 발급하기 완전 정복
🎯 목표
- Django REST Framework + SimpleJWT를 사용해 JWT 발급 API 구성하기
- 직접 뷰 작성 없이 기본 제공 View로 빠르게 적용하기
- 관리자 페이지에서 사용자 생성 → 토큰 발급까지 실습하기
✅ SimpleJWT란?
SimpleJWT는 Django REST Framework(DRF)에서 JWT(Json Web Token) 기반 인증을 쉽게 구현할 수 있는 라이브러리입니다.
- 🪙 토큰 기반 인증: 세션 상태를 유지하지 않아 RESTful 설계에 적합
- 🔐 Access + Refresh 토큰 방식: 보안성과 재사용성 강화
- 🧱 인증 시스템을 빠르게 세팅할 수 있는 기본 View 제공
⚙️ 1단계: 프로젝트 세팅
- Poetry 환경 구성
pip install poetry
poetry init # 기본값 엔터
- 필수 패키지 설치
poetry add django
djangorestframework
djangorestframework-simplejwt
- 프로젝트 생성 및 설정
django-admin startproject lets_simplejwt
cd lets_simplejwt
- settings.py 설정
INSTALLED_APPS = [
'rest_framework',
'rest_framework_simplejwt',
...
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
),
}
🛠️ 2단계: URL 라우팅 설정
SimpleJWT는 내장된 토큰 발급 뷰를 제공합니다. urls.py에서 다음과 같이 설정합니다.
from django.contrib import admin
from django.urls import path
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
]
🧱 3단계: 마이그레이션 & 서버 실행
python manage.py migrate
python manage.py runserver
🧑💼 4단계: 관리자 계정 & 유저 생성
- 관리자 계정 생성
python manage.py createsuperuser
- username, password 입력 (보안 경고 무시 가능)
- 관리자 페이지 접속
http://127.0.0.1:8000/admin
- 유저 생성하기
- Username, 비밀번호 입력
- Django는 비밀번호 보안 정책(8자 이상 등)을 자동 적용합니다.
🚀 5단계: API 테스트 전 준비 완료!
- 현재 상태:
- 관리자 계정 O
- 일반 유저 O
- 토큰 발급 URL 설정 O
🧪 테스트 예고편: Postman으로 토큰 발급 받기
다음 단계에서는 Postman을 통해 실제로 위에서 생성한 유저의 Access, Refresh 토큰을 발급받고 사용하는 실습을 진행합니다.
👉 api/token/ POST 요청으로 로그인
👉 api/token/refresh/로 토큰 갱신까지 배워봅시다!
✅ 이번 포스트 핵심 요약
구성 요소 설명
SimpleJWT | DRF용 JWT 인증 패키지 |
TokenObtainPairView | 로그인 시 Access + Refresh 토큰 발급 |
TokenRefreshView | Refresh 토큰으로 Access 갱신 |
JWT 사용 이유 | 세션 없는 인증, 유연하고 안전함 |
👉 다음 블로그에서는 Postman으로 토큰을 활용하는 API 테스트 실습을 다룹니다!