Tutorial: Automatisches Anmelden von Benutzern nach der Registrierung in einer Android-App
In diesem Tutorial wird veranschaulicht, wie Sie Benutzer nach der Registrierung in einer Android-App mithilfe der nativen Authentifizierung automatisch anmelden.
In diesem Tutorial lernen Sie Folgendes:
- Anmelden nach der Registrierung
- Behandeln von Fehlern
Voraussetzungen
- Führen Sie die Schritte unter Anmelden von Benutzern in einer mobilen und nativen Android-Beispielanwendung aus. In diesem Artikel erfahren Sie, wie Sie ein Android-Beispiel ausführen, das Sie mithilfe Ihrer Mandanteneinstellungen konfigurieren.
- Tutorial: Hinzufügen der Registrierung in einer mobilen Android-App mit systemeigener Authentifizierung. Die Schritte in diesem Tutorial sollten funktionieren, unabhängig davon, ob Sie sich mit E-Mail und Kennwort oder Einmal-Passcode per E-Mail registrieren.
Anmelden nach der Registrierung
Nach einem erfolgreichen Registrierungsflow können Sie Ihre Benutzer automatisch anmelden, ohne einen neuen Anmeldeflow zu initiieren.
SignUpResult.Complete
gibt das Objekt SignInContinuationState
zurück. Das SignInContinuationState
-Objekt ermöglicht den Zugriff auf die signIn()
-Methode.
Um einen Benutzer mit E-Mail und Kennwort zu registrieren und diesen dann automatisch anzumelden, können Sie den folgenden Codeschnipsel verwenden:
CoroutineScope(Dispatchers.Main).launch {
val signUpActionResult = authClient.signUp(
username = emailAddress,
password = password
)
if (SignUpActionResult is SignUpResult.CodeRequired) {
val nextState = signUpActionResult.nextState
val submitCodeActionResult = nextState.submitCode(
code = code
)
if (submitCodeActionResult is SignUpResult.Complete) {
// Handle sign up success
val signInContinuationState = actionResult.nextState
val signInActionResult = signInContinuationState.signIn()
if (signInActionResult is SignInResult.Complete) {
// Handle sign in success
val accountState = signInActionResult.resultValue
val accessTokenResult = accountState.getAccessToken()
if (accessTokenResult is GetAccessTokenResult.Complete) {
val accessToken = accessTokenResult.resultValue.accessToken
val idToken = accountState.getIdToken()
}
}
}
}
}
Um ID-Tokenansprüche nach der Anmeldung abzurufen, führen Sie die Schritte unter Lesen von ID-Tokenansprüchen aus.
Behandeln von Anmeldefehlern
Die SignInContinuationState.signIn()
-Methode gibt nach einer erfolgreichen Anmeldung SignInResult.Complete
zurück. Sie kann aber auch einen Fehler zurückgeben.
Verwenden Sie das folgende Codeschnipsel, um Fehler in SignInContinuationState.signIn()
zu behandeln:
val signInContinuationState = actionResult.nextState
val signInActionResult = signInContinuationState.signIn()
when (signInActionResult) {
is SignInResult.Complete -> {
// Handle sign in success
displayAccount(accountState = actionResult.resultValue)
}
is SignInContinuationError -> {
// Handle unexpected error
}
else -> {
// Handle unexpected error
}
}
private fun displayAccount(accountState: AccountState) {
CoroutineScope(Dispatchers.Main).launch {
val accessTokenResult = accountState.getAccessToken()
if (accessTokenResult is GetAccessTokenResult.Complete) {
val accessToken = accessTokenResult.resultValue.accessToken
val idToken = accountState.getIdToken()
}
}
}