2017-09-04 1 views
1

Ich versuche, die displayName-Eigenschaft eines Benutzers unter Verwendung des setAccountInfo-Endpunkts zu aktualisieren, wie in der documentation beschrieben.Firebase-Authentifizierung REST-API setAccountInfo-Endpunkt ignoriert returnSecureToken

Der Anzeigename wird aktualisiert, die Eigenschaft returnSecureToken wird jedoch ignoriert. In der JSON Antwort idToken und refreshToken sind nie da, und es gibt ein extra emailVerified nicht in der Dokumentation erwähnt.

Ist diese schlechte/veraltete Dokumentation oder fehlt mir etwas?

Antwort

1

returnSecureToken wird nur in Operationen benötigt, in denen das alte ID-Token widerrufen wird. Wenn Sie den displayName aktualisieren, bleibt das vorhandene ID-Token/Aktualisierungstoken gültig. Wenn Sie das Passwort oder die E-Mail aktualisieren, werden die Token widerrufen und Sie benötigen neue. Das Auth-Backend gibt neue Token zurück, da nach einer E-Mail-/Passwort-Aktualisierung alle vorhandenen Sitzungen aus Sicherheitsgründen widerrufen werden.

Um die Benutzerdaten zurück zu erhalten, verwenden Sie den Endpunkt . Das ist der beste Weg, um einen Benutzer zu füllen. Ich glaube, setAccountInfo kann verschiedene Daten zurückgeben, je nachdem, wofür es verwendet wird.

+0

Ich weiß, dass das 'idToken' hier nicht erforderlich ist. Der Punkt ist, dass die Dokumentation falsch zu sein scheint. –

+0

returnSecureToken gibt bei Bedarf nur ein neues Token zurück. Die Dokumentation sollte aktualisiert werden, um dies zu erwähnen. Das Firebase Auth-Backend gibt bei jedem Start eines Aktualisierungsprofils kein neues Aktualisierungstoken zurück. Wenn Sie ein neues Aktualisierungs-Token möchten, können Sie eine Aktualisierung erzwingen und das vorhandene Aktualisierungs-Token gegen ein neues austauschen, indem Sie https://firebase.google.com/docs/reference/rest/auth/#section-refresh-token verwenden ein Bug mit Firebase-Unterstützung, um dies in der offiziellen Referenz zu klären. – bojeil

+0

Danke. Ich habe eine Stunde lang meinen Code durchgearbeitet und versucht, herauszufinden, was nicht in Ordnung war, und bin dann auf diese Frage eingegangen und habe festgestellt, dass es nur ihre falsche Dokumentation ist. – iDev