IT박스

Postman으로 헤더에 JWT 토큰 보내기

itboxs 2020. 6. 9. 22:19
반응형

Postman으로 헤더에 JWT 토큰 보내기


다음 기사를 기반으로 JWT 토큰 기반 보안 구현을 테스트하고 있습니다. 테스트 서버에서 토큰을 성공적으로 받았습니다. Chrome POSTMAN REST Client 프로그램이 헤더에 토큰을 보내는 방법을 알 수 없습니다.

우편 배달부

내 질문은 다음과 같습니다.

1) 올바른 헤더 이름 및 / 또는 POSTMAN 인터페이스를 사용하고 있습니까?

2) 토큰을 64 인코딩해야합니까? 토큰을 다시 보낼 수 있다고 생각했습니다.


요청 헤더 이름에 대해서는 권한 부여를 사용하십시오. 토큰 앞에 무기명을 배치하십시오. 방금 시도해 보았고 효과가 있습니다.

승인 : 무기명 TOKEN_STRING

JWT의 각 부분은 base64url로 인코딩 된 값입니다.


도움이된다면 이미지가 있습니다 :)

우편 집배원

최신 정보:

우체부 팀은 "인증 탭"에 "베어러 토큰"을 추가했습니다. 우편 배달부 업데이트


이 질문에 JWT Apis를 테스트하는 데 도움이되는 약간 흥미로운 팁을 추가하고 있습니다.

실제로는 매우 간단합니다.

로그인하면 Api (로그인 엔드 포인트)에서 즉시 토큰을 받게되며 @ mick-cullen이 말한 것처럼 헤더에서 JWT를 다음과 같이 사용해야합니다.

Authorization: Bearer TOKEN_STRING

이제 자동화하거나 인생을 편하게 만들고 싶다면 테스트를 통해 다른 모든 엔드 포인트에서 다음과 같이 호출 할 수있는 글로벌 토큰을 저장할 수 있습니다.

Authorization: Bearer {{jwt_token}}

우편 배달부 : 그런 다음 우편 배달부에서 jwt_token = TOKEN_STRING으로 전역 변수를 만듭니다.

로그인 엔드 포인트에서 : 유용하게하려면 테스트 탭의 시작 부분에 추가하십시오.

var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);

귀하의 API가 { "jwt_token": "TOKEN_STRING"}과 같은 응답에서 토큰을 json으로 반환한다고 생각합니다.

첫 번째 줄에서 데이터 변수에 응답을 추가합니다. 글로벌을 청소하고 가치를 부여하십시오.

이제 전역 변수에 대한 토큰을 갖게되었으므로 모든 엔드 포인트에서 권한 부여 : Bearer {{jwt_token}}를 쉽게 사용할 수 있습니다.

이 팁이 도움이 되길 바랍니다.



읽을 내용 편집

Postman의 테스트 정보 : 테스트 예

커맨드 라인 : Newman

CI : Jenkins와 통합

좋은 블로그 게시물 : 마스터 API 테스트 자동화


나는 Flask동일한 ( Authorization: Bearer <token>) 첫 번째 두 가지 솔루션을 시도하고 얻은 후에도 같은 문제가있었습니다 .

{
    "description": "Unsupported authorization type",
    "error": "Invalid JWT header",
    "status_code": 401
}

나는 마침내 다음을 사용하여 그것을 해결했다.

Authorization: jwt <token>

같은 일을 겪는 사람들에게는 시간이 절약 될 수 있다고 생각했습니다.


토큰을 자동으로 설정하는 방법은 다음과 같습니다.

로그인 / 인증 요청시

여기에 이미지 설명을 입력하십시오

그런 다음 인증 된 페이지

여기에 이미지 설명을 입력하십시오


If you wish to use postman the right way is to use the headers as such

key: Authorization

value: jwt {token}

as simple as that.


여기에 이미지 설명을 입력하십시오

Everything else ie. Params, Authorization, Body, Pre-request Script, Tests is empty, just open the Headers tab and add as shown in image. Its the same for GET request as well.


For people who are using wordpress plugin Advanced Access Manager to open up the JWT Authentication.

The Header field should put Authentication instead of Authorization

여기에 이미지 설명을 입력하십시오

AAM mentioned it inside their documentation,

Note! AAM does not use standard Authorization header as it is skipped by most Apache servers. ...


Hope it helps someone! Thanks for other answers helped me alot too!!


  1. Open postman.
  2. go to "header" field.
  3. there one can see "key value" blanks.
  4. in key type "Authorization".
  5. in value type "Bearer(space)your_access_token_value".

Done!


Somehow postman didn't work for me. I had to use a chrome extension called RESTED which did work.


I did as how moplin mentioned .But in my case service send the JWT in response headers ,as a value under the key "Authorization".

Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ

What I did was ,make a Global variable in postman as

key->jwt
value->blahblah

in login request->Tests Tab, add

postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));

in other requests select the Headers tab and give

key->Authorization

value->{{jwt}}

참고URL : https://stackoverflow.com/questions/24709944/sending-jwt-token-in-the-headers-with-postman

반응형