Freigeben über


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

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()
        }
    }
}

Nächste Schritte