概要
Firebase Auth REST API を使った認証についての自分用メモ。
FirebaseSDK が使えない環境や、REST クライアントでのユーザー認証の検証で役に立つ。
本記事で行うのは下記の2つ、IdToken は HTTP リクエスト時の Bearer トークンになる。
- IdTokenを取得する
- IdTokenの更新を行う
詳しくは Firebase Auth REST API を参照。
APIキーを取得する
Firebaseダッシュボード -> プロジェクトの設定 -> 全般 -> ウェブAPIキー。
IdTokenを取得する
IdToken は1時間で無効になるので、IdToken を更新できる RefreshToken も取得しておく。
ユーザーセッションの管理 | Firebase
POST: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[APIキー]
{
"email": "example@example.org",
"password": "testtest",
"returnSecureToken": "true"
}
{
"kind": "identitytoolkit#VerifyPasswordResponse",
"localId": "******************",
"email": "example@example.org",
"displayName": "",
"idToken": "[IdToken]",
"registered": true,
"refreshToken": "[RefreshToken]",
"expiresIn": "3600"
}
IdTokenを更新する
IdToken 取得時に一緒に取得した RefreshToken を利用する。
ここで返ってくる RefreshToken はリクエストのものと同じになるので更新の必要は無い。
POST: https://securetoken.googleapis.com/v1/token?key=[APIキー]
{
"grant_type": "refresh_token",
"refresh_token": "[RefreshToken]"
}
{
"access_token": "****************",
"expires_in": "3600",
"token_type": "Bearer",
"refresh_token": "[RefreshToken]",
"id_token": "[IdToken]",
"user_id": "**************",
"project_id": "**************"
}