Tutorial: Iniciar sessão do utilizador automaticamente após a inscrição numa aplicação iOS/macOS
Aplica-se a: Inquilinos do Workforce
Inquilinos externos (saber mais)
Este tutorial demonstra como entrar no usuário automaticamente após a inscrição em um aplicativo iOS/macOS usando autenticação nativa.
Neste tutorial, você aprenderá a:
- Inicie sessão após a inscrição.
- Trate erros.
Pré-requisitos
- Se estiver a utilizar iOS, siga as etapas em iniciar sessão de utilizadores na aplicação móvel de exemplo iOS (Swift) usando a autenticação nativa. Se estiver a utilizar o macOS, siga os passos indicados em Iniciar sessão na aplicação de exemplo macOS (Swift) utilizando a autenticação nativa. Estes artigos mostram como executar aplicativos de exemplo que você configura usando suas configurações de locatário.
- Tutorial: Adicionar registo numa aplicação iOS/macOS 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 o registo
O Sign in after sign up
é uma funcionalidade de melhoria dos fluxos de login do utilizador, que tem o efeito de iniciar sessão automaticamente após um registo bem-sucedido. O SDK fornece aos desenvolvedores a capacidade de entrar em um usuário depois de se inscrever, sem ter que fornecer o nome de usuário, ou verificar o endereço de e-mail através de uma senha única.
Para iniciar sessão para um utilizador após um registo bem-sucedido, 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 para onSignInCompleted(result)
indicando que o usuário entrou. 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 para 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 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.