📁 ETC

[Postman] 포스트맨 Token 환경변수에 자동 설정하기

오늘 ONEUL 2022. 12. 11. 22:06

요즘 API 테스트용으로 포스트맨을 이용하고 있다.
화면 없이도 응답 값을 확인할 수 있어 참 편하고 좋은데,
로그인 후 Token 값을 인증이 필요한 모든 요청 header에 매번 넣어주는 게 귀찮아서
자동 설정을 해보려 한다.

 


 

기존의 테스트하는 방법

jwt를 이용한 로그인은 대부분 이런 방식으로 테스트할 것이다.

  1. 라우트로 로그인 요청을 보낸다.
  2. 응답받은 값의 header에서 Token 값을 복사한다. (예시는 Bearer 토큰)
  3. 인증이 필요한 다른 라우트에 요청을 보낼 때, header에 Token 값을 붙여 넣기 하여 보낸다.

라우트가 한두 개도 아니고, 여러 개 늘어나다 보면 이 과정이 굉장히 귀찮아진다.
변수 설정을 통해 자동으로 동작하도록 설정해보자.

 

 

포스트맨 Token 환경변수 자동 설정

1) Tests탭에 코드 작성

Request의 Tests탭

먼저 Request의 Tests 탭에 다음과 같은 코드를 작성한다.
이때, Status Code 값이 같아야 한다. (예시는 200)

if(pm.response.code === 200){
    pm.environment.set('authToken', pm.response.headers.get("Authorization").substring(7));
}

headers에 있는 Token값을 가져오는 것인데,
이건 서버에서 어떻게 보내줬느냐에 따라 다를 수 있다.
나는 Authorization이라는 key값으로 보내주고 있고, 앞쪽의 Bearer를 떼고 저장해야 하므로 substring을 이용하였다.

 

 

Postman Script에 대해

(설정만 필요한 사람은 다음으로 넘어가도 좋다.)

포스트맨의 Script는 JavaScript와 비슷하다.
어떤 값이 설정되는지 궁금하다면 Console로 출력하며 확인해보자.
View → Show Postman Console 메뉴에서 Postman의 Console 창을 열 수 있다.

Postman Console Menu

 

예를 들어 응답으로 오는 모든 값을 Console창에서 확인하고 싶다면?

if(pm.response.code === 200){
    console.log(pm.response);
}

Postman Console

이렇게 response의 출력을 확인할 수 있다.
더 다양한 문법은 아래에서 체크!!

📚 Postman Collection SDK

 

Home - Postman Documentation

Postman Collection SDK is a NodeJS module that allows a developer to work with Postman Collections. Using this module a developer can create collections, manipulate them and then export them in a format that the Postman Apps and Postman CLI Runtimes (such

www.postmanlabs.com

 

 

2) 새로운 환경변수 설정 (Environment variable)

Create new environment

왼쪽에 Environments탭을 클릭하고, + 버튼을 클릭해 새로운 환경을 생성한다.

 

VARIABLE setting

알맞은 환경 이름으로 변경하고, Tests탭에서 설정했던 authToken을 변수로 설정한다.
오른쪽 상단에 있는 Save 버튼을 클릭하여 새로운 환경을 저장해준다.

 

Environment setting

다시 Collections 탭으로 돌아와서
오른쪽 상단의 No Environment 부분을 클릭하고 방금 생성한 환경으로 변경해준다.
이후 Send 버튼을 눌러 로그인 요청을 보낸다.

 

Check Environments

Environments 탭에서 Token 값이 설정해둔 변수에 잘 담기는지 확인한다.

 

 

3) Collection 설정

Collections Edit Authrization

Collections 탭에서 Edit 버튼을 클릭하고 Authorization 설정을 해준다.
Type은 Bearer Token, Token에는 설정해둔 환경변수 {{변수이름}}을 작성한다.

 

 

4) 각각의 Request 설정

Reqeust Authorization setting

이제 각 Request의 Authorization탭에서 Type을 Inherit auth from parent로 설정하면 된다.
오른쪽 화면에 방금 Collection탭에서 설정한 Bearer Token을 이용한다는 안내 문구가 나온다.

 

🚨 주의사항

Request의 Default값은 Inherit auth from parent로 되어 있을 것이다.
header에 Token을 보낼 필요가 없는 요청은 이 설정을 No Auth로 변경해주어야 한다!

 


 

이제 귀찮게 Token을 복붙 할 필요 없이
로그인 요청을 보내면 자동으로 Token이 환경변수에 저장되고,
다른 인증이 필요한 요청을 보낼 때마다 저장된 변수의 Token을 사용하게 된다! 👍

 

📚 참고자료

 

Postman: 아직도 token 붙여넣기 하시나요?

백앤드의 각 라우트가 잘 동작하는지 테스트해보실때 포스트맨 많이들 쓰시죠? jwt를 이용한 인증토큰(이 예시는 Bearer Token)관련해서 조금 편하게 사용할 수 있는 방법을 소개해드리기에 앞서 아

velog.io