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
- Voer de stappen uit om gebruikers aan te melden in een voorbeeld van een systeemeigen mobiele Android-toepassing. In dit artikel wordt beschreven hoe u een voorbeeld-Android uitvoert die u configureert met behulp van uw tenantinstellingen.
- Zelfstudie: Registratie toevoegen in een mobiele Android-app met behulp van systeemeigen verificatie. De stappen in deze zelfstudie moeten werken of u zich registreert met een wachtwoordcode voor e-mail en wachtwoord of e-mail.
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()
}
}
}