Partage via


Tutoriel : Se connecter automatiquement à l’utilisateur après l’inscription dans une application Android

Ce tutoriel montre comment connecter l’utilisateur automatiquement après l’inscription dans une application Android à l’aide de l’authentification native.

Dans ce tutoriel, vous allez apprendre à :

  • Vous connecter après l’inscription.
  • Gérer les erreurs.

Prérequis

Se connecter après l’inscription

Après un flux d’inscription réussi, vous pouvez vous connecter automatiquement à vos utilisateurs sans lancer un nouveau flux de connexion.

SignUpResult.Complete retourne l’objet SignInContinuationState. L’objet SignInContinuationState fournit l’accès à signIn() méthode.

Pour inscrire un utilisateur avec un e-mail et un mot de passe, puis connectez-vous automatiquement, utilisez l’extrait de code suivant :

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

Pour récupérer les revendications de jeton d'ID après la connexion, suivez les étapes décrites dans Lire les revendications de jeton d'ID.

Gérer les erreurs de connexion

La méthode SignInContinuationState.signIn() retourne SignInResult.Complete après une connexion réussie. Elle peut également retourner une erreur.

Pour gérer les erreurs dans SignInContinuationState.signIn(), utilisez l’extrait de code suivant :

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

Étapes suivantes