방관 / Stateless 환경에서 Postman의 Auto Authentication

Created Mon, 17 Jun 2024 00:00:00 +0000 Modified Wed, 26 Jun 2024 20:04:57 +0900

Stateless 환경에서 Postman을 사용하는 경우, 매번 로그인을 거치거나, 갱신해야 하는 경우가 생기는데 해당 문제를 자동화하기 위해 환경 설정에 필요한 값을 저장하고 실행 전 자동으로 갱신할 수 있도록 설정한다.

  1. Environments에서 환경을 생성하고 사용할 ID, PW와 갱신 or 저장할 토큰명을 지정하여 저장한다. 환경을 생성, 지정하지 않은 경우 컬렉션 내부 환경을 할 수도 있지만 결합도를 낮추기 위해 추천하지 않음

baseUrl -> 해당 환경에서 사용할 기본 주소, OpenAPI등을 이용해 Import 하는 경우 다음과 같이({{baseUrl}}/api/v1/login) 지정되며, 환경 변경 시에도 빠른 대응이 가능하므로 반드시 저장하는 것을 추천

login_id, password, bearer-token -> 각자 환경에 알맞게 수정

Postman Environments Setting Tab

생성한 환경 설정은 1시 방향의 하기 메뉴에서 선택하여 사용

Postman Environment Setting Menu

  1. Collentions -> Collention(또는 Request) -> Script -> Pre-request 탭을 선택하여 하기 소스를 붙여넣고 수정, 저장한다.

    해당 소스의 경우 매번 로그인하도록 처리

// 로그인 또는 토큰 갱신에 필요한 데이터를 환경 설정에서 불러온다
let data = {
            "login_id": pm.environment.get("login_id"),
            "password": pm.environment.get("password")
        }
// 실행할 Request 이전에 해야 할 작업을 설정한다.
pm.sendRequest({
    url: pm.environment.get("baseUrl")+"/api/v1/login",
    method: 'POST',
    header: {
            'Accept': '*/*',
            'Content-Type': 'application/json'
    },
    body: {
        mode: 'raw',
        raw: JSON.stringify(data)
    }
}, (err, res) =>pm.environment.set("bearer-token", res.json().access_token))
  1. Collentions -> Collention -> Authorization 탭에서 타입과 값을 설정한다.

    Bearer Token을 사용했기 때문에 {{bearer-token}}으로 지정

Collention Authorization Type Setting

  • 컬렉션 하위의 요청의 경우 Authorization 탭의 설정을 Inherit authorization으로 지정하여 상속받도록 지정한다.

    Request Authorization Inherit authorization Setting

  • OpenAPI등을 이용하는 경우 하기와 같이 포스트맨의 Import 기능을 이용해 컬렉션을 불러올 수 있는데, 이때 Always inherit authentication 옵션을 활성화하여 모든 요청의 인증을 상속받을 수 있다.

    Postman Import Always inherit authentication Setting