Chapter 14-4 Django에서 Simple-JWT로 토큰 발급하기 완전 정복

2025. 5. 21. 18:04·Django
목차
  1. 🔐 Django에서 Simple-JWT로 토큰 발급하기 완전 정복
  2. 🎯 목표
  3. ✅ SimpleJWT란?
  4. ⚙️ 1단계: 프로젝트 세팅
  5. 🛠️ 2단계: URL 라우팅 설정
  6. 🧱 3단계: 마이그레이션 & 서버 실행
  7. 🧑‍💼 4단계: 관리자 계정 & 유저 생성
  8. 🚀 5단계: API 테스트 전 준비 완료!
  9. 🧪 테스트 예고편: Postman으로 토큰 발급 받기

🔐 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단계: 프로젝트 세팅

  1. Poetry 환경 구성
pip install poetry
poetry init  # 기본값 엔터
  1. 필수 패키지 설치
poetry add django
djangorestframework
djangorestframework-simplejwt
  1. 프로젝트 생성 및 설정
django-admin startproject lets_simplejwt
cd lets_simplejwt
  1. 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단계: 관리자 계정 & 유저 생성

  1. 관리자 계정 생성
python manage.py createsuperuser
  • username, password 입력 (보안 경고 무시 가능)
  1. 관리자 페이지 접속
http://127.0.0.1:8000/admin
  1. 유저 생성하기
  • 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 테스트 실습을 다룹니다!

'Django' 카테고리의 다른 글

Chapter 14-5 Postman으로 JWT 토큰 발급 및 인증 요청 실습  (0) 2025.05.21
Chapter 14-3 PythonAnywhere를 사용한 Django 프로젝트 배포 가이드  (0) 2025.05.21
Chapter 14-2 SimpleJWT 완전 정복 가이드  (0) 2025.05.21
Chapter 14-1 drf-yasg 사용법 완전 정리  (0) 2025.05.21
Chapter 12-1 Django TDD(Test-Driven Development)란?  (0) 2025.05.19
  1. 🔐 Django에서 Simple-JWT로 토큰 발급하기 완전 정복
  2. 🎯 목표
  3. ✅ SimpleJWT란?
  4. ⚙️ 1단계: 프로젝트 세팅
  5. 🛠️ 2단계: URL 라우팅 설정
  6. 🧱 3단계: 마이그레이션 & 서버 실행
  7. 🧑‍💼 4단계: 관리자 계정 & 유저 생성
  8. 🚀 5단계: API 테스트 전 준비 완료!
  9. 🧪 테스트 예고편: Postman으로 토큰 발급 받기
'Django' 카테고리의 다른 글
  • Chapter 14-5 Postman으로 JWT 토큰 발급 및 인증 요청 실습
  • Chapter 14-3 PythonAnywhere를 사용한 Django 프로젝트 배포 가이드
  • Chapter 14-2 SimpleJWT 완전 정복 가이드
  • Chapter 14-1 drf-yasg 사용법 완전 정리
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Python (32)
      • 프로젝트 (110)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    titaniumcase
    travel ban
    newpoliticalparty
    americanlaw
    btscomeback
    urbantrends
    hotcoffeecase
    chatgpterror
    self-growth
    college reunions
    life reflection
    gpterror
    americaparty
    smartphonedurability
    bts
    homebartrend
    basalcellcarcinoma
    btsreunion
    뷔
    trumpmuskclash
    chinanightlife
    global politics
    RM
    classaction
    btsdischarge
    youngprofessionals
    lawsuitculture
    btsjungkook
    remittance
    livebroadcast
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 14-4 Django에서 Simple-JWT로 토큰 발급하기 완전 정복

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.