Tutorial: Inicio de sesión del usuario automáticamente después de registrarse en una aplicación de iOS/macOS
Se aplica a: iOS (Swift) 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
- Si estás en iOS, sigue los pasos de Inicio de sesión de usuarios en la aplicación móvil iOS (Swift) de ejemplo mediante la autenticación nativa. Si usas macOS, sigue los pasos de Inicio de sesión de usuarios en la aplicación macOS (Swift) de ejemplo mediante la autenticación nativa. En estos artículos se muestra cómo ejecutar aplicaciones de ejemplo que se configuran mediante la configuración del inquilino.
- Tutorial: Incorporación del registro en una aplicación iOS/macOS mediante la autenticación nativa. Los pasos de este tutorial deben funcionar tanto si se registra con el correo electrónico como la contraseña o el código de acceso de un solo uso.
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.