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(parameters)
.
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 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 a entrada, use as etapas em Ler declarações de token de ID.
Como lidar com erros de entrada
O método SignInContinuationState.signIn(parameters)
retorna SignInResult.Complete
após uma entrada bem-sucedida. Também pode retornar um erro.
Para tratar erros no SignInContinuationState.signIn(parameters)
, use o seguinte snippet 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()
}
}
}