次の記事に基づいて、JWT トークン ベースのセキュリティの実装をテストしています。テスト サーバーからトークンを正常に受信しました。Chrome POSTMAN REST クライアント プログラムがヘッダーでトークンを送信する方法がわかりません。
私の質問は次のとおりです。
1) 正しいヘッダー名や POSTMAN インターフェイスを使用していますか?
2) トークンを base 64 でエンコードする必要がありますか? トークンを返送するだけでよいと思いました。
この質問に、JWT Api のテストに役立つかもしれない少し興味深いヒントを追加します。
実際には非常に簡単です。
ログインすると、Api (ログイン エンドポイント) ですぐにトークンを受け取ります。@mick-cullen が言ったように、ヘッダーで JWT を次のように使用する必要があります。
Authorization: Bearer TOKEN_STRING
自動化したい、または単に生活を楽にしたい場合は、テストでトークンをグローバルとして保存し、他のすべてのエンドポイントで次のように呼び出すことができます。
Authorization: Bearer {{jwt_token}}
Postman の場合: 次に、postman でグローバル変数を 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 として返していると推測していますが、何らかのバリエーションがある可能性があります。
最初の行で、応答をデータ変数に追加します。グローバルをクリーンアップし、値を割り当てます。
これでグローバル変数にトークンが設定され、すべてのエンドポイントで Authorization: Bearer {{jwt_token}} を使いやすくなりました。
このヒントがお役に立てば幸いです。
編集
読むべきもの
Postman でのテストについて:テスト例
コマンドライン:ニューマン
CI: Jenkins との統合
素敵なブログ投稿:マスター API テストの自動化
Postman の最新バージョン (7++) では、Authorization に Bearer フィールドがない可能性があるため、Header タブに移動します。
キーを Authorization として選択し、値に JWT を書き込みます