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

Nächste Schritte