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
- Suivez les étapes Connectez les utilisateurs dans un exemple d'application mobile Android native. Cet article vous montre comment exécuter un exemple d'Android que vous configurez à l'aide des paramètres de votre client.
- Tutoriel : ajouter une inscription à une application mobile Android à l’aide de l’authentification native. Les étapes de ce didacticiel devraient fonctionner, que vous vous inscriviez avec un e-mail et un mot de passe ou un mot de passe à usage unique par e-mail.
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()
}
}
}