😽
Postman で Firebase Authentication の トークンを取得する
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