Beim Anmelden oder Registrieren führe ich folgende Aufrufe durch
Code: Select all
var userCredential = await client.CreateUserWithEmailAndPasswordAsync("email", "pwd", "Display Name");
var userCredential = await client.SignInWithEmailAndPasswordAsync("email", "pwd");
Ich möchte, dass der Benutzer auch dann angemeldet bleibt, wenn er die App vollständig beendet und erneut geöffnet hat. Soweit ich weiß, ist das Id-Token nur von kurzer Dauer und muss mithilfe des Refresh-Tokens erneuert werden, das praktisch für die gesamte Lebensdauer des Benutzerkontos gültig ist.
Es scheint jedoch keine direkte Methode zu geben, die das Refresh-Token als Parameter verwendet und das Id-Token zurückgibt. Man muss anrufen:
Code: Select all
userCredential.User.GetIdTokenAsync()
Da UserCredential ein relativ komplexes Objekt ist, glaube ich nicht, dass ich das Aktualisierungstoken speichern und dieses Objekt beim nächsten Start der App erneut auffüllen kann.
Eine Alternative, die mir einfällt, besteht darin, das UserCredential-Objekt zu serialisieren und zu speichern. Aber das klingt eher nach einem Hack.
Ich nehme an, ich kann das Passwort des Benutzers speichern und mich jedes Mal im Hintergrund anmelden, aber das widerspricht wahrscheinlich dem Zweck der Verwendung von Token.
Gibt es eine bessere Möglichkeit, sitzungsübergreifend angemeldet zu bleiben?
Mobile version