次の記事に基づいて、JWTトークンベースのセキュリティの実装をテストしています。テストサーバーからトークンを正常に受信しました。Chrome POSTMAN RESTクライアントプログラムでヘッダー内のトークンを送信する方法がわかりません。
私の質問は次のとおりです。
1)正しいヘッダー名やPOSTMANインターフェイスを使用していますか?
2)トークンをbase 64エンコードする必要がありますか?トークンを送り返すだけでいいと思った。
次の記事に基づいて、JWTトークンベースのセキュリティの実装をテストしています。テストサーバーからトークンを正常に受信しました。Chrome POSTMAN RESTクライアントプログラムでヘッダー内のトークンを送信する方法がわかりません。
私の質問は次のとおりです。
1)正しいヘッダー名やPOSTMANインターフェイスを使用していますか?
2)トークンをbase 64エンコードする必要がありますか?トークンを送り返すだけでいいと思った。
回答:
リクエストのヘッダー名には、Authorizationを使用します。トークンの前にベアラーを置きます。試してみただけでうまくいきました。
承認:ベアラーTOKEN_STRING
JWTの各部分は、base64urlでエンコードされた値です。
この質問に、JWT Apisをテストするのに役立つ少し興味深いヒントを追加します。
実際はとてもシンプルです。
ログインすると、Api(ログインエンドポイント)ですぐにトークンを受け取ります。@ mick-cullenが言ったように、ヘッダーでJWTを使用する必要があります。
Authorization: Bearer TOKEN_STRING
自動化したい場合、または単に作業を簡単にしたい場合は、次のように他のすべてのエンドポイントで呼び出すことができるグローバルとしてトークンを保存できます。
Authorization: Bearer {{jwt_token}}
Postmanの場合:次に、jwt_token = TOKEN_STRINGとして、postmanでグローバル変数を作成します。
ログインエンドポイント:便利にするために、[テスト]タブの先頭に以下を追加します。
var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);
私はあなたのapiが応答でトークンとしてjsonとしてトークンを返していると思います:{"jwt_token": "TOKEN_STRING"}、なんらかのバリエーションがある可能性があります。
最初の行で、応答をデータ変数に追加します。グローバルをクリーンアップして、値を割り当てます。
これで、トークンがグローバル変数にあり、すべてのエンドポイントでAuthorization:Bearer {{jwt_token}}を使いやすくすることができます。
このヒントがお役に立てば幸いです。
編集する
もの
Postmanのテストについて:テストの例
コマンドライン:ニューマン
CI:Jenkinsとの統合
素晴らしいブログ投稿:マスターAPIテストの自動化
Test
タブとPostmanコーディングの概念に慣れていません。これから始めることをお勧めするリソースはありますか?
私は同じ問題を抱えていましたがFlask
、最初の2つの同じソリューションを試し(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>
。解決策をありがとう
WordPressプラグインAdvanced Access Managerを使用してJWT認証を開くユーザー向け。
ヘッダーフィールドには、承認ではなく認証を配置する必要があります
AAMは彼らのドキュメントの中でそれを述べました、
注意!AAM は、ほとんどのApacheサーバーによってスキップされるため、標準のAuthorizationヘッダーを使用しません。...
それが誰かを助けることを願っています!他の回答もありがとうございました!
moplinが言ったように私はやりました。しかし、私の場合、サービスはJWTをレスポンスヘッダーで、「Authorization」キーの下の値として送信します。
Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ
私がしたことは、郵便配達員としてグローバル変数を作成することでした
key-> jwt value-
> blahblah
ログインリクエスト-> [テスト]タブで、追加
postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));
他のリクエストでは、[ヘッダー]タブを選択し、
キー->認証
値-> {{jwt}}
Postmanの最新バージョン(7 ++)では、AuthorizationにBearerフィールドがない可能性があるため、[Header]タブに移動します
認証としてキーを選択し、値にJWTを書き込みます
Bearer Token
が、Authorization
タブにヘルパーがあり、ここにトークン値(ハードコードまたは動的変数として)を追加するAuthorization
と、リクエストに対して同じヘッダーが作成されます。