Tutorial: fazer login do usuário automaticamente após a inscrição em um aplicativo iOS/macOS
Aplica-se a: iOS (Swift)
macOS (Swift)
Esse tutorial demonstra como fazer login do usuário automaticamente após a inscrição em um aplicativo iOS/macOS usando autenticação nativa.
Neste tutorial, você aprenderá a:
- Entre após a inscrição.
- Manipular erros.
Pré-requisitos
- Se você estiver no iOS, siga as etapas em Conectar usuários em um aplicativo móvel de amostra do iOS (Swift) usando a autenticação nativa. Se você estiver usando o macOS, siga as etapas em Conectar usuários no aplicativo macOS (Swift) de exemplo usando a autenticação nativa. Este artigo mostra como executar aplicativos de exemplo configurados usando suas configurações de locatário.
- Tutorial: adicionar inscrição em um aplicativo iOS/macOS 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
A é Sign in after sign up
uma funcionalidade de aprimoramento dos fluxos de usuário de entrada, que tem o efeito de entrar automaticamente depois de se inscrever com êxito. O SDK fornece aos desenvolvedores a capacidade de conectar um usuário após a inscrição, sem precisar fornecer o nome de usuário ou verificar o endereço de email por meio de uma senha única.
Para conectar um usuário após a inscrição bem-sucedida, use o método signIn(delegate)
do novo estado SignInAfterSignUpState
retornado no onSignUpCompleted(newState)
:
extension ViewController: SignUpVerifyCodeDelegate {
func onSignUpVerifyCodeError(error: MSAL.VerifyCodeError, newState: MSAL.SignUpCodeRequiredState?) {
resultTextView.text = "Error verifying code: \(error.errorDescription ?? "no description")"
}
func onSignUpCompleted(newState: SignInAfterSignUpState) {
resultTextView.text = "Signed up successfully!"
let parameters = MSALNativeAuthSignInAfterSignUpParameters()
newState.signIn(parameters: parameters, delegate: self)
}
}
O signIn(parameters:delegate)
aceita uma instância MSALNativeAuthSignInAfterSignUpParameters
e um parâmetro delegado e devemos implementar os métodos necessários no protocolo SignInAfterSignUpDelegate
.
No cenário mais comum, recebemos uma chamada a onSignInCompleted(result)
, indicando que o usuário se conectou. O resultado pode ser usado para recuperar o access token
.
extension ViewController: SignInAfterSignUpDelegate {
func onSignInAfterSignUpError(error: SignInAfterSignUpError) {
resultTextView.text = "Error signing in after sign up"
}
func onSignInCompleted(result: MSAL.MSALNativeAuthUserAccountResult) {
// User successfully signed in
let parameters = MSALNativeAuthGetAccessTokenParameters()
result.getAccessToken(parameters: parameters, delegate: self)
}
}
O getAccessToken(parameters:delegate)
aceita uma instância MSALNativeAuthGetAccessTokenParameters
e um parâmetro delegado e devemos implementar os métodos necessários no protocolo CredentialsDelegate
.
No cenário mais comum, recebemos uma chamada a onAccessTokenRetrieveCompleted(result)
, indicando que o usuário obteve um access token
.
extension ViewController: CredentialsDelegate {
func onAccessTokenRetrieveError(error: MSAL.RetrieveAccessTokenError) {
resultTextView.text = "Error retrieving access token"
}
func onAccessTokenRetrieveCompleted(result: MSALNativeAuthTokenResult) {
resultTextView.text = "Signed in. Access Token: \(result.accessToken)"
}
}
Configurar provedor de declarações personalizado
Se você quiser adicionar declarações a partir de um sistema externo ao token emitido para seu aplicativo, use um provedor de declarações personalizado. Um provedor de declarações personalizado é composto por uma extensão de autenticação personalizada que chama uma API REST externa para buscar declarações de sistemas externos.
Siga as etapas em Configurar um provedor de declarações personalizado para adicionar declarações de um sistema externo aos seus tokens de segurança.