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(parameters)
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 parameters = NativeAuthSignUpParameters(username = email)
parameters.password = password
val actionResult: SignUpResult = authClient.signUp(parameters)
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 parameters = NativeAuthSignInContinuationParameters()
val signInActionResult = signInContinuationState.signIn(parameters)
if (signInActionResult is SignInResult.Complete) {
// Handle sign in success
val accountState = signInActionResult.resultValue
val getAccessTokenParameters = NativeAuthGetAccessTokenParameters()
val accessTokenResult = accountState.getAccessToken(getAccessTokenParameters)
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(parameters)
método retorna SignInResult.Complete
após uma entrada bem-sucedida. Ele também pode retornar um erro.
Para manipular erros no SignInContinuationState.signIn(parameters)
, use o seguinte trecho de código:
val parameters = NativeAuthSignInContinuationParameters()
val signInActionResult = signInContinuationState.signIn(parameters)
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 getAccessTokenParameters = NativeAuthGetAccessTokenParameters()
val accessTokenResult = accountState.getAccessToken(getAccessTokenParameters)
if (accessTokenResult is GetAccessTokenResult.Complete) {
val accessToken = accessTokenResult.resultValue.accessToken
val idToken = accountState.getIdToken()
}
}
}