Compartir vía


Tutorial: Inicio de sesión del usuario automáticamente después de registrarse en una aplicación de iOS/macOS

Se aplica a: Círculo verde con un símbolo de marca de verificación blanca. iOS (Swift) Círculo verde con un símbolo de marca de verificación blanca. macOS (Swift)

En este tutorial se muestra cómo iniciar sesión automáticamente el usuario después de registrarse en una aplicación iOS/macOS mediante la autenticación nativa.

En este tutorial, aprenderá a:

  • Iniciar sesión después del registro.
  • Control de errores.

Requisitos previos

Inicio de sesión después del registro

Sign in after sign up es una funcionalidad de mejora de los flujos de usuario de inicio de sesión, que tiene el efecto de iniciar sesión automáticamente después de registrarse correctamente.de iniciar sesión automáticamente después de registrarse correctamente. El SDK ofrece a los desarrolladores la posibilidad de iniciar la sesión de un usuario después de registrarse, sin tener que facilitar el nombre de usuario ni verificar la dirección de correo electrónico mediante una contraseña de un solo uso.

Para iniciar la sesión de un usuario después de haberse registrado correctamente, utiliza el método signIn(delegate) del nuevo estado SignInAfterSignUpState devuelto en el 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)
    }
}

signIn(delegate) acepta un parámetro delegado y debemos implementar los métodos necesarios en el protocolo SignInAfterSignUpDelegate.

En el escenario más común, recibimos una llamada a onSignInCompleted(result) que indica que el usuario ha iniciado sesión. El resultado se puede usar para recuperar 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
        result.getAccessToken(delegate: self)
    }
}

getAccessToken(delegate) acepta un parámetro delegado y debemos implementar los métodos necesarios en el protocolo CredentialsDelegate.

En el escenario más común, recibimos una llamada a onAccessTokenRetrieveCompleted(result) para indicar que el usuario obtuvo un 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)"
    }
}

Configuración del proveedor de notificaciones personalizado

Si quieres agregar notificaciones de un sistema externo al token emitido a la aplicación, usa un proveedor de notificaciones personalizado. Un proveedor de notificaciones personalizado se compone de una extensión de autenticación personalizada que llama a una API REST externa para obtener notificaciones de sistemas externos.

Sigue los pasos descritos en Configuración de un proveedor de notificaciones personalizado para agregar notificaciones desde un sistema externo a los tokens de seguridad.

Paso siguiente