1. ホーム
  2. firebase

Firebase refreshTokenを使って再認証する方法とは?

2023-09-17 20:58:11

質問内容

私は、JSライブラリの呼び出し firebase.auth().signInWithEmailAndPassword(email, password) を返し、その後に User オブジェクトを返します。その User オブジェクトには refreshToken .

私は curl 'https://docs-examples.firebaseio.com/rest/saving-data/auth-example.json?auth=TOKEN' を使ってFirebaseへの呼び出しを行います。

トークンはいずれ期限切れになります。アプリケーションのように見せるために、( iOSmacOS ) が永続的なログインをしている場合、トークンを更新したいのですが、どのようにすればよいのでしょうか? REST または JS というライブラリはありますか?ドキュメントには refreshToken を使って新しい token .

どのように解決するのですか?

** アップデイト ** これは現在、Firebase REST ドキュメントにも書かれています。 Exchange a refresh token for an ID token セクションの下にあります。

https://firebase.google.com/docs/reference/rest/auth/#section-refresh-token


現在、私が見つけた唯一の方法は、ここです。 https://developers.google.com/identity/toolkit/reference/securetoken/rest/v1/token

HTTP リクエストを行う必要があります。

POST https://securetoken.googleapis.com/v1/token?key=YOUR_KEY

どこ YOUR_KEY Google Developers コンソール > API マネージャ > 認証情報 . の下にあります。 API Keys セクションにあります。

リクエストボディが以下のような構造になっていることを確認してください。

grant_type=refresh_token&refresh_token=REFRESH_TOKEN

ここで REFRESH_TOKEN は、Firebase のユーザーオブジェクトがサインインしたときのリフレッシュトークンです。

ヘッダを設定する必要があります。 Content-Type: application/json を設定しないとエラーになります(例:"MISSING_GRANT_TYPE")。

POST を呼び出すと、新しい idToken (を返します(以前は access_token )