Självstudie: Logga in användare automatiskt efter registrering i en Android-app
Den här självstudien visar hur du loggar in användare automatiskt efter registrering i en Android-app med inbyggd autentisering.
I den här självstudien lär du dig att:
- Logga in efter registreringen.
- Hantera fel.
Förutsättningar
- Slutför stegen Logga in användare i ett exempel på ett internt Android-mobilprogram. Den här artikeln visar hur du kör ett Android-exempel som du konfigurerar med hjälp av klientinställningarna.
- Självstudie: Lägga till registrering i en Android-mobilapp med inbyggd autentisering. Stegen i den här självstudien bör fungera oavsett om du registrerar dig med e-post och lösenord eller engångslösenord för e-post.
Logga in efter registreringen
Efter ett lyckat registreringsflöde kan du automatiskt logga in dina användare utan att initiera ett nytt inloggningsflöde.
Returnerar SignUpResult.Complete
SignInContinuationState
objektet. Objektet SignInContinuationState
ger åtkomst till signIn()
metoden.
Om du vill registrera en användare med e-post och lösenord och sedan automatiskt logga in dem använder du följande kodfragment:
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()
}
}
}
}
}
Om du vill hämta ID-tokenanspråk efter inloggningen använder du stegen i Anspråk för läs-ID-token.
Hantera inloggningsfel
Metoden SignInContinuationState.signIn()
returnerar SignInResult.Complete
efter en lyckad inloggning. Det kan också returnera ett fel.
Om du vill hantera fel i SignInContinuationState.signIn()
använder du följande kodfragment:
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()
}
}
}