Postman은 API 개발 및 테스트를 위한 협업 플랫폼이자 API 클라이언트로 주로 웹 API를 테스트하고 디버깅하는 데 사용된다.
Postman에서 API 테스트를 할 때 API가 accessToken과 같은 다른 API(로그인 API, 토큰 재발급 API 등)의 결괏값을 파라미터로 사용하는 경우, 결괏값이 변경될 때마다(토큰 유효기간 만료 혹은 재로그인) 포스트맨의 환경변수 값을 변경해주어야 하는 불편함이 있다.
내가 개발하는 프로젝트는 JWT 토큰 인증 방식을 사용하기 때문에 로그인 후 JWT 토큰을 헤더에 자동으로 삽입하는 방법을 정리해보았다.
1️⃣ 애플리케이션 Collection 설정
애플리케이션 Collection의 Variables 탭에서 accessToken 변수를 등록해 준다.
애플리케이션 Collection의 Authorization 탭에서 Type을 Bearer Token으로 설정하고 Token에 {{accessToken}} 을 입력해 준다.
2️⃣ 로그인 API 설정
우선 로그인 API의 경우, 토큰이 필요하지 않기 때문에 Authorization탭의 Type을 No Auth로 설정해 준다.
Tests 탭에 스크립트를 작성한다. (포스트맨의 스크립트는 자바 스크립트와 유사)
var data = JSON.parse(responseBody);
pm.collectionVariables.set("accessToken", data.data.token.accessToken);
console.log(data.data.token.accessToken);
console.log(pm.collectionVariables);
이 코드는 responseBody에서 JSON 형식의 데이터를 파싱해 data 변수에 담은 후 포스트맨의 글로벌 범위에서 정의된(pm) 환경변수 중 "accessToken" 변수에 해당 API의 accessToken 값을 대입시키는 코드이다.
"responseBody"에서 "accessToken" 값이 어디에 있는지 확실히 알기 어려울 때는, 포스트맨의 왼쪽 아래에 있는 콘솔 창에서 현재 요청의 응답을 자세히 살펴보고 JSON 데이터를 쉽게 파악할 수 있다.
3️⃣ 토큰이 필요한 다른 API 설정
accessToken이 필요한 다른 API의 Authorization의 Type을 Inherit auth from parent로 설정한다.
Headers 탭에 Authorization Key가 자동으로 생기고, Value 값도 "Bearer " + accessToken 으로 값이 자동으로 설정되어 있는 것을 확인할 수 있다.
❗️ Collection Variables를 저장해도 업데이트되지 않을 때
포스트맨에 열려있던 탭을 다 정리하니까 제대로 동작한다🤭
'Back-end' 카테고리의 다른 글
[Spring Boot] 멀티 모듈 참고 영상 및 정리 (0) | 2024.05.17 |
---|---|
[JPA] JPA Entity에서의 equals(), hashCode() (0) | 2024.05.16 |
[Spring Security] 인증 및 권한 부여 구성 요소 살펴보기 (0) | 2024.05.02 |
Java Record로 DTO를 만들어봅시다 (0) | 2024.05.01 |
[Spring] Meta Annotation이란? (@Target, @Retention 등) (0) | 2024.04.29 |