Tutorial: Conectar o usuário automaticamente após a inscrição em um aplicativo Android
Este tutorial demonstra como conectar o usuário automaticamente após a inscrição em um aplicativo Android usando a autenticação nativa.
Neste tutorial, você aprenderá a:
- Entre após a inscrição.
- Manipular erros.
Pré-requisitos
- Complete as etapas Conectar usuários em um aplicativo móvel Android nativo de exemplo. Este artigo mostra como executar um Android de amostra que você configura usando suas configurações de locatário.
- Tutorial: Adicionar inscrição em um aplicativo móvel Android usando autenticação nativa. As etapas neste tutorial devem funcionar se você se inscrever com senha e email ou senha de uso único.
Entrar após a inscrição
Após um fluxo de inscrição bem-sucedido, você pode conectar seus usuários automaticamente sem iniciar um fluxo de entrada novo.
O SignUpResult.Complete
retorna o objeto SignInContinuationState
. O objeto SignInContinuationState
fornece acesso ao método signIn()
.
Para inscrever um usuário com email e senha e, depois, conectá-lo automaticamente, use o seguinte trecho de código:
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()
}
}
}
}
}
Para recuperar declarações de token de ID após a entrada, use as etapas em Ler declarações de token de ID.
Como lidar com erros de entrada
O método SignInContinuationState.signIn()
retorna SignInResult.Complete
após uma entrada bem-sucedida. Também pode retornar um erro.
Para tratar erros no SignInContinuationState.signIn()
, use o seguinte snippet de código:
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()
}
}
}