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


169

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

우편 배달부

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

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

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


안녕하세요, POSTMAN에서 내가받은 jwt 토큰을 어디에서 볼 수 있습니까?
Usr

1
@ MLondei, 수신 서버가 구성되는 방식에 따라 다릅니다. URL로 돌아와 (URL 문자열에서 찾음) 응답 본문으로 돌아올 수 있습니다 (응답의 본문 필드에서 찾음). 그것들은 내가 알고있는 두 가지 주요한 것입니다.
다이오드 Dan

답변:


277

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

승인 : 무기명 TOKEN_STRING

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


61
설명과 마찬가지로 "Header"필드는 Authorization이되고 "Value"필드는 Bearer [WHITESPACE] <your-code-here>
Diode Dan

필드의 어떤 부분이 암호화되어 있는지 알고 있습니까? 마지막 '.'바로 뒤에있는 데이터 인 것 같습니다. separator는 가비지 문자처럼 보이는 것을 보여줍니다. 이것이 실제로 토큰 생성기에 의해 암호화 된 정보라고 생각합니까?
다이오드 Dan

5
jwt.io를 확인하십시오 .JWT 를 붙여 넣고 디코딩 된 내용을 볼 수있는 섹션이 있으며, 가장 좋은 방법을 확인하는 방법입니다. 서버 시크릿 문자열은 토큰의 마지막 섹션을 만드는 데 사용됩니다. JWT는 페이로드가 암호화하지 않는다는 서명 만합니다. 즉, 문자열의 파트 1과 2를 디코딩 할 수 있지만 비밀 없이는 유효성을 검증 할 수 없습니다. self-issued.info/docs/draft-ietf-oauth-json-web-token.html
Mick Cullen

4
누군가 JWT 이전에 Bearer를 배치해야하는 이유를 자세히 설명해 주시겠습니까? 이것이 JWT라는 것을 서버에 알리는 신호입니까?
user137717

3
그것은 단지 컨벤션입니다-여기에서 모든 세부 사항을 찾을 수 있습니다 : jwt.io/introduction
Michael Noyb

134

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

우편 집배원

최신 정보:

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


40

이 질문에 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 테스트 자동화


흥미롭게도 Test탭과 Postman 코딩 개념에 익숙하지 않습니다. 이를 시작하기 위해 권장되는 자료가 있습니까?
다이오드 Dan


실제로 Postman은 자동화 된 테스트와 관련하여 매우 흥미롭고 매우 강력합니다. 테스트에서 실행할 수있는 임의의 데이터 전역 변수 또는 환경 변수를 빌드 할 수있는 방식으로 우편 배달부를 구성 할 수 있습니다. 그리고 반복 실행을 수행하고 엔드 포인트 단위 테스트로 응답을 테스트하십시오. 코드를 변경할 때 저장하고 오류를 찾으십시오. 명령 줄 유틸리티를 사용하지 않았지만 ci-pipeline에서 실행되도록 구성 할 수 있음을 이해합니다.
Pablo Palacios

귀하의 캔 여기에 명령 행에 대해 읽어 : getpostman.com/docs/newman_intro
파블로 팔라시오

9

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

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

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

Authorization: jwt <token>

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


1
나는 얻고 있었다 Authentication credentials were not provided에서 django사용 Bearer <token>. 로 해결되었습니다 jwt <token>. 솔루션에 감사드립니다
S_M

7

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

로그인 / 인증 요청시

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

그런 다음 인증 된 페이지

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


4

우편 배달부를 사용하려면 올바른 방법으로 헤더를 사용하는 것입니다

키 : 인증

값 : jwt {token}

저것과 같이 쉬운.


2

워드 프레스 플러그인 Advanced Access Manager 를 사용하는 사람들 이 JWT 인증을 열 수 있습니다.

헤더 필드 두어야 인증 대신의 승인을

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

AAM은 문서에 언급했습니다 .

노트! AAM 은 표준 권한 부여 헤더 를 대부분의 Apache 서버에서 건너 뛰므로 사용하지 않습니다 . ...


그것이 누군가를 돕기를 바랍니다! 다른 답변에 감사드립니다.


2
  1. 우편 집배원을여십시오.
  2. "헤더"필드로 이동하십시오.
  3. "키 값"공백을 볼 수 있습니다.
  4. "Authorization"키 유형
  5. "Bearer (space) your_access_token_value"값 유형.

끝난!


2

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

다른 모든 것. 매개 변수, 권한 부여, 본문, 사전 요청 스크립트, 테스트 가 비어 있습니다. 헤더 탭을 열고 이미지와 같이 추가하십시오. GET 요청도 마찬가지입니다.


0

어떻게 든 우편 배달부가 나를 위해 일하지 않았다. 작동하는 RESTED라는 크롬 확장 프로그램을 사용해야했습니다.


0

나는 moplin이 언급 한대로했지만 내 경우 서비스는 "Authorization"키 아래의 값으로 응답 헤더에 JWT를 보냅니다.

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

내가 한 것은 우체부에서 전역 변수를

키-> jwt
값-> blahblah

로그인 요청-> 테스트 탭에서 추가

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

다른 요청에서 헤더 탭을 선택하고

키-> 인증

value-> {{jwt}}


0

Postman 최신 버전 (7 ++)의 Authorization에 Bearer 필드가 없을 수 있으므로 Header 탭으로 이동하십시오.

인증으로 키를 선택하고 JWT 값 쓰기


v7.19.0 +의 경우 한동안도 존재 Bearer Token했지만 Authorization탭에 도우미가 있으며 여기에 토큰 값을 추가하면 (하드 코딩되거나 동적 변수로) Authorization요청에 대해 동일한 헤더 가 생성됩니다 .
대니 데이턴
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.