😽

Postman で Firebase Authentication の トークンを取得する

2022/03/20に公開

Postman でフレッシュな認証トークンを取得する

API を作るときは大体 Postman を使っていろいろ試すのですが、今回の API は Firebase Authentication を使って認証しているので、毎回有効なトークンをリクエストに含める必要がありまして。
Postman の Pre-request Script を使って、登録済みユーザのメールアドレス/パスワードからトークンを取得するようにしました。

Pre-request Script

具体的にはこんなスクリプトです。

const getToken={
  url: 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]',
  method: "post",
  body: {
    mode: 'raw',
    raw: JSON.stringify({
      email: '[user@example.com]',
      password: '[PASSWORD]',
      returnSecureToken: true  
    })
  },
  header: {
      'Content-Type': 'application/json'
  }
};

pm.sendRequest(getToken, function (err, response) {
    console.log(response.json());
    var jsonData = response.json();
    pm.collectionVariables.set("FirebaseAuthToken", jsonData.idToken);
});

※ 上記のスクリプトの [API_KEY] を Firebase プロジェクトの Web API キーに、 [user@example.com] をユーザーのメールアドレスに、 [PASSWORD] をユーザーのパスワードに置き換えます。

Firebase Auth REST API の メール/パスワードでサインイン を利用しています。

このスクリプトを Postman のコレクションの Pre-request Script に設定すると、毎回リクエストを行う直前に"FirebaseAuthToken" というコレクション変数に取得したトークンがセットされます。
あとは Authorization など必要なところの値に {{FirebaseAuthToken}} を使えばOK。
リクエストのたびにフレッシュなトークンを使えるので、期限切れの心配もありません。


Postman 便利ですよね。上記の方法を応用すれば、他にも必要な値を毎回取得することができると思います。

Discussion