다음 기사를 기반으로 JWT 토큰 기반 보안 구현을 테스트하고 있습니다. 테스트 서버에서 토큰을 성공적으로 받았습니다. Chrome POSTMAN REST Client 프로그램이 헤더에 토큰을 보내는 방법을 알 수 없습니다.
내 질문은 다음과 같습니다.
1) 올바른 헤더 이름 및 / 또는 POSTMAN 인터페이스를 사용하고 있습니까?
2) 토큰을 64 인코딩해야합니까? 토큰을 다시 보낼 수 있다고 생각했습니다.
다음 기사를 기반으로 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 테스트 자동화
Test
탭과 Postman 코딩 개념에 익숙하지 않습니다. 이를 시작하기 위해 권장되는 자료가 있습니까?
나는 Flask
동일한 ( Authorization: Bearer <token>
) 첫 번째 두 가지 솔루션을 시도하고 얻은 후에도 같은 문제가있었습니다 .
{
"description": "Unsupported authorization type",
"error": "Invalid JWT header",
"status_code": 401
}
나는 마침내 다음을 사용하여 그것을 해결했다.
Authorization: jwt <token>
같은 일을 겪는 사람들에게는 시간이 절약 될 수 있다고 생각했습니다.
Authentication credentials were not provided
에서 django
사용 Bearer <token>
. 로 해결되었습니다 jwt <token>
. 솔루션에 감사드립니다
워드 프레스 플러그인 Advanced Access Manager 를 사용하는 사람들 이 JWT 인증을 열 수 있습니다.
헤더 필드 두어야 인증 대신의 승인을
AAM은 문서에 언급했습니다 .
노트! AAM 은 표준 권한 부여 헤더 를 대부분의 Apache 서버에서 건너 뛰므로 사용하지 않습니다 . ...
그것이 누군가를 돕기를 바랍니다! 다른 답변에 감사드립니다.
나는 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}}
Postman 최신 버전 (7 ++)의 Authorization에 Bearer 필드가 없을 수 있으므로 Header 탭으로 이동하십시오.
인증으로 키를 선택하고 JWT 값 쓰기
Bearer Token
했지만 Authorization
탭에 도우미가 있으며 여기에 토큰 값을 추가하면 (하드 코딩되거나 동적 변수로) Authorization
요청에 대해 동일한 헤더 가 생성됩니다 .