3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Firebase Auth REST API で IdToken を取得/更新する

Last updated at Posted at 2021-04-02

概要

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キー]

request.json
{
  "email": "example@example.org",
  "password": "testtest",
  "returnSecureToken": "true"
}
response.json
{
"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キー]

request.json
{
  "grant_type": "refresh_token",
  "refresh_token": "[RefreshToken]"
}
response.json
{
  "access_token": "****************",
  "expires_in": "3600",
  "token_type": "Bearer",
  "refresh_token": "[RefreshToken]",
  "id_token": "[IdToken]",
  "user_id": "**************",
  "project_id": "**************"
}

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?