Partilhar via


Tutorial: Iniciar sessão do utilizador automaticamente após a inscrição numa aplicação iOS/macOS

Aplica-se a: Círculo verde com um símbolo de marca de verificação branco. iOS (Swift) Círculo verde com um símbolo de marca de verificação branco. macOS (Swift)

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, irá aprender a:

  • Inicie sessão após a inscrição.
  • Manipule erros.

Pré-requisitos

Iniciar sessão após a inscrição

O Sign in after sign up é uma funcionalidade de aprimoramento dos fluxos de usuário de login, que tem o efeito de entrar automaticamente depois de se inscrever com êxito. 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 entrar em um usuário após a inscrição bem-sucedida, use o signIn(delegate) método 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!"
        newState.signIn(delegate: self)
    }
}

O signIn(delegate) aceita um parâmetro delegado e devemos implementar os métodos necessários no SignInAfterSignUpDelegate protocolo.

No cenário mais comum, recebemos uma chamada indicando onSignInCompleted(result) que o usuário entrou. O resultado pode ser usado para recuperar o access tokenarquivo .

extension ViewController: SignInAfterSignUpDelegate {
    func onSignInAfterSignUpError(error: SignInAfterSignUpError) {
        resultTextView.text = "Error signing in after sign up"
    }

    func onSignInCompleted(result: MSAL.MSALNativeAuthUserAccountResult) {
        // User successfully signed in
        result.getAccessToken(delegate: self)
    }
}

O getAccessToken(delegate) aceita um parâmetro delegado e devemos implementar os métodos necessários no CredentialsDelegate protocolo.

No cenário mais comum, recebemos uma chamada indicando onAccessTokenRetrieveCompleted(result) que o usuário obteve um access tokenarquivo .

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.

Próximo passo