Share via


Zelfstudie: Gebruiker automatisch aanmelden na aanmelding in een Android-app

In deze zelfstudie wordt gedemonstreerd hoe u gebruikers automatisch kunt aanmelden na aanmelding in een Android-app met behulp van systeemeigen verificatie.

In deze zelfstudie leert u het volgende:

  • Meld u aan nadat u zich hebt aangemeld.
  • Fouten verwerken.

Vereisten

Aanmelden na aanmelding

Na een geslaagde aanmeldingsstroom kunt u uw gebruikers automatisch aanmelden zonder een nieuwe aanmeldingsstroom te starten.

Het SignUpResult.Complete retourneert SignInContinuationState een object. Het SignInContinuationState object biedt toegang tot signIn() de methode.

Als u een gebruiker wilt registreren met een e-mailadres en wachtwoord en deze vervolgens automatisch wilt aanmelden, gebruikt u het volgende codefragment:

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

Als u na aanmelding id-tokenclaims wilt ophalen, gebruikt u de stappen in tokenclaims voor lezen-id's.

Aanmeldingsfouten afhandelen

De SignInContinuationState.signIn() methode wordt geretourneerd SignInResult.Complete na een geslaagde aanmelding. Er kan ook een fout worden geretourneerd.

Gebruik het volgende codefragment om fouten in SignInContinuationState.signIn()af te handelen:

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

Volgende stappen