web-dev-qa-db-ja.com

Postmanを使用してヘッダーにJWTトークンを送信する

次の 記事 に基づいて、JWTトークンベースのセキュリティの実装をテストしています。テストサーバーからトークンを正常に受信しました。 Chrome POSTMAN RESTクライアントプログラムにヘッダーのトークンを送信させる方法がわかりません。

postman screenshot

私の質問は以下の通りです。

1)正しいヘッダ名やPOSTMANインタフェースを使用していますか?

2)トークンをbase 64でエンコードする必要がありますか?私はトークンを送り返すことができると思いました。

138
Diode Dan

リクエストのヘッダ名はAuthorizationを使用してください。トークンの前にベアラを置きます。試してみただけで、うまくいきます。

権限:ベアラTOKEN_STRING

JWTの各部分は、base64urlエンコード値です。

241
Mick Cullen

それが助けになるなら、ここに画像があります:)

Postman

更新:

郵便配達チームは、「承認タブ」に「ベアラトークン」を追加しました。 Updated postman

121
prasanthv

この質問に、JWT Apisのテストに役立つと思われる、少し興味深いヒントを追加します。

実はとても簡単です。

あなたがログインすると、あなたの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でのテストについて: テスト例

コマンドライン: Newman

CI: Jenkinsとの統合

素敵なブログ記事: マスターAPIテスト自動化

37
moplin

私はFlaskにも同じ問題を抱えていましたが、最初の2つの同じ解決策(Authorization: Bearer <token>)を試してみたところ、次のようになりました。

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

私はついにこれを使ってそれを解決することができました:

Authorization: jwt <token>

それは同じことに遭遇した人々にとって時間を節約するかもしれないと思った。

9
Vucko

これは自動的にトークンを設定する方法です

ログイン/認証リクエスト

enter image description here

それから認証されたページのために

enter image description here

6
Digitlimit

Postmanを使いたいのなら、正しい方法はヘッダをそのまま使うことです。

キー:認証

値:jwt {token}

それと同じくらい簡単です。

1
Adi
  1. "header"フィールドに行きます。
  2. そこには「キー値」の空白が見えます。
  3. キータイプは "Authorization"です。
  4. 値のタイプが "Bearer(space)your_access_token value"。
  5. 完了しました。

1
Dheeraj

どういうわけか郵便配達員は私のために働きませんでした。私はうまくいったRESTEDと呼ばれるクロム拡張を使わなければなりませんでした。

0
RamanSM

私のケースのサービスではmoplinがどのようにして.BWをレスポンスヘッダで送信するかをキー "Authorization"の下の値として述べました。

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

私がしたことは、郵便配達のグローバル変数を

キー - > jwt
値 - > blahblah

ログインリクエスト - >テストタブで、追加

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

他のリクエストでは、ヘッダタブを選択して

キー - >承認

値 - > {{jwt}}

0
Yasitha Bandara

enter image description here

他のすべて、すなわち。 Params、Authorization、Body、Pre-request Script、Testsは空です。単にHeadersタブを開いてイメージのように追加してください。 GETリクエストについても同様です。

0
coda

ワードプレスプラグイン Advanced Access Manager を使ってJWT認証を開く人のために。

Headerフィールドには、AuthorizationではなくAuthenticationを入力します。

enter image description here

AAMは彼らの ドキュメンテーション の中でそれを述べました、

注意! AAMは、ほとんどのApacheサーバーではスキップされるため、標準のAuthorizationヘッダーを使用しません。 ...


それが誰かに役立つことを願っています!他の回答をありがとう、私もたくさん助けてくれました!!

0
jeffsama