2017-09-04 5 views
1

documentationで説明されているように、setAccountInfoエンドポイントを使用しているユーザーのdisplayNameプロパティを更新しようとしています。Firebase認証REST API setAccountInfoエンドポイントはreturnSecureTokenを無視します

表示名は更新されますが、returnSecureTokenプロパティは無視されます。 JSONの返信では、idTokenrefreshTokenは存在せず、ドキュメントには記載されていない追加のemailVerifiedがあります。

この悪い/時代遅れのドキュメントですか、何か不足していますか?

答えて

1

returnSecureTokenは、古いIDトークンが取り消される操作でのみ必要です。 displayNameを更新する場合、既存のIDトークン/リフレッシュトークンは有効なままです。パスワードまたは電子メールを更新する場合、トークンは取り消され、新しいトークンが必要になります。 Authバックエンドは電子メール/パスワードの更新後に新しいトークンを返しますが、セキュリティ上の理由から既存のセッションはすべて取り消されます。

ユーザーデータを取得するには、getAccountInfoエンドポイントを使用してください。これがユーザーを設定する最善の方法です。私はsetAccountInfoが何のために使われているかによって異なるデータを返すかもしれないと信じています。

+0

「idToken」はここでは必要ないことがわかります。要点は、ドキュメントが間違っているようだということです。 –

+0

returnSecureTokenは必要なときだけ新しいトークンを返します。ドキュメンテーションはそれに言及するために更新されるべきです。 Firebase Authバックエンドは、更新プロファイルが開始されるたびに新しいリフレッシュトークンを返しません。新しいリフレッシュトークンを使用する場合は、強制的にリフレッシュし、https://firebase.google.com/docs/reference/rest/auth/#section-refresh-tokenを使用して、既存のリフレッシュトークンを新しいリフレクショントークンと交換することができます。公式のリファレンスでこれを明らかにするFirebaseサポートのバグ。 – bojeil

+0

ありがとうございます。私は何が間違っていたのかを把握しようとしている間、自分のコードを徹底的に調べて、この質問に遭遇し、間違ったドキュメントだけを考え出しました。 – iDev