Tutorial: Iniciar sessão do utilizador automaticamente após a inscrição numa aplicação Android
Este tutorial demonstra como entrar no usuário automaticamente após a inscrição em um aplicativo Android usando autenticação nativa.
Neste tutorial, irá aprender a:
- Inicie sessão após a inscrição.
- Manipule erros.
Pré-requisitos
- Conclua as etapas Inicie sessão de utilizadores numa aplicação móvel Android nativa de exemplo. Este artigo mostra como executar um exemplo de Android que você configura usando as configurações do locatário.
- Tutorial: Adicione inscrição em um aplicativo móvel Android usando autenticação nativa. As etapas neste tutorial devem funcionar se você se inscrever com e-mail e senha ou senha única por e-mail.
Iniciar sessão após a inscrição
Após um fluxo de inscrição bem-sucedido, você pode entrar automaticamente em seus usuários sem iniciar um novo fluxo de entrada.
O SignUpResult.Complete
objeto de retorno SignInContinuationState
. O SignInContinuationState
objeto fornece acesso ao signIn()
método.
Para inscrever um usuário com e-mail e senha e, em seguida, entrar 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 o login, use as etapas em Declarações de token de ID de leitura.
Manipular erros de entrada
O SignInContinuationState.signIn()
método retorna SignInResult.Complete
após uma entrada bem-sucedida. Ele também pode retornar um erro.
Para manipular erros no SignInContinuationState.signIn()
, use o seguinte trecho 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()
}
}
}