📮 Postman으로 JWT 토큰 발급 및 인증 요청 실습
🎯 목표
- 발급된 JWT 토큰을 Postman에서 직접 사용해 API 요청 테스트
- Access / Refresh 토큰 활용법과 인증 흐름 완전 이해
🧪 Step 1: Postman 설치 및 기본 세팅
- Postman 설치 후 실행
- 왼쪽 상단 New → Collection 클릭
- 이름: JWT 테스트
- 설명 및 구조를 컬렉션 단위로 관리하면 테스트 시 편리함
🧾 Step 2: 토큰 발급 API 요청 구성
✅ POST /api/token/
- URL: http://127.0.0.1:8000/api/token/
- Method: POST
- Body: raw 선택 → JSON 형식 입력
{
"username": "생성한유저",
"password": "비밀번호"
}
- 주의: URL 마지막 슬래시 / 누락 금지
🔽 응답 예시
{
"refresh": "eyJ...",
"access": "eyJ..."
}
이제 JWT 토큰 2종류가 발급되었습니다! 🎉
✅ Step 3: Access Token으로 보호된 API 접근
보호된 API (예: 프로필, 게시물 조회 등)에 접근할 때는 access token을 사용합니다.
- 새 요청 생성
- Method: GET / POST 등 실제 API에 따라 선택
- URL: 예시) http://127.0.0.1:8000/api/profile/
- 상단 탭 Authorization 선택 → Bearer Token 선택
- Token: 복사한 Access Token 입력
- Send 클릭 후 응답 결과 확인
- 200 OK 응답 = 인증 성공
- 401 Unauthorized = 토큰 만료 혹은 미인증
🔄 Step 4: Refresh Token으로 Access Token 재발급
✅ POST /api/token/refresh/
- URL: http://127.0.0.1:8000/api/token/refresh/
- Method: POST
- Body:
{
"refresh": "<복사한 Refresh Token>"
}
🔽 응답 예시
{
"access": "새로 발급된 토큰"
}
👉 토큰 만료 시 프론트엔드에서 자동으로 이 과정을 호출하여 갱신할 수 있음
🧠 유저 인증 흐름 요약
단계 요청 API 사용 토큰 목적
로그인 | /api/token/ | X | access + refresh 발급 |
인증 API 요청 | 보호된 URL | Access Token | 유저 확인 |
토큰 갱신 | /api/token/refresh/ | Refresh Token | 새 Access 발급 |
💡 추가 팁: Postman 환경 변수 활용
- 토큰을 변수에 저장하고 여러 요청에 재활용 가능
- Tests 탭에서 응답 데이터를 변수에 저장하는 스크립트 작성 가능
let jsonData = pm.response.json();
pm.environment.set("accessToken", jsonData.access);
pm.environment.set("refreshToken", jsonData.refresh);
- 이후 요청에서는 Authorization 헤더에 {{accessToken}} 삽입
✅ 정리
- Postman을 활용한 JWT 인증 실습으로 실제 백엔드 API 테스트 가능
- 토큰을 어디에, 언제, 어떻게 사용해야 하는지 명확히 이해
- 실무에서 자주 마주하는 인증 로직을 미리 체험할 수 있음
🔗 다음 스텝?
- 인증이 필요한 다양한 API (ex. 댓글 등록, 사용자 정보 수정 등)에 적용
- 만료된 토큰 처리 및 에러 대응 로직 설계까지 이어지면 실무 완성도 UP!
지금 바로 Postman 열고 실습해보세요! 🚀
'Django' 카테고리의 다른 글
Chapter 14-4 Django에서 Simple-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 |