Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Externe Mandanten (weitere Informationen)
In diesem Tutorial wird veranschaulicht, wie Sie Benutzer nach der Registrierung in einer Android-App mithilfe der nativen Authentifizierung automatisch anmelden.
In diesem Tutorial führen Sie Folgendes durch:
- Melden Sie sich nach der Registrierung an.
- 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.
Die SignUpResult.Complete gibt ein SignInContinuationState-Objekt zurück. Das SignInContinuationState-Objekt ermöglicht den Zugriff auf die signIn(parameters)-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 parameters = NativeAuthSignUpParameters(username = email)
parameters.password = password
val actionResult: SignUpResult = authClient.signUp(parameters)
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 parameters = NativeAuthSignInContinuationParameters()
val signInActionResult = signInContinuationState.signIn(parameters)
if (signInActionResult is SignInResult.Complete) {
// Handle sign in success
val accountState = signInActionResult.resultValue
val getAccessTokenParameters = NativeAuthGetAccessTokenParameters()
val accessTokenResult = accountState.getAccessToken(getAccessTokenParameters)
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(parameters)-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(parameters) zu behandeln:
val parameters = NativeAuthSignInContinuationParameters()
val signInActionResult = signInContinuationState.signIn(parameters)
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 getAccessTokenParameters = NativeAuthGetAccessTokenParameters()
val accessTokenResult = accountState.getAccessToken(getAccessTokenParameters)
if (accessTokenResult is GetAccessTokenResult.Complete) {
val accessToken = accessTokenResult.resultValue.accessToken
val idToken = accountState.getIdToken()
}
}
}