Overview
Si ha habilitado la Proveedor de correo electrónico/contraseña en su aplicación, puede registrar una nueva cuenta, confirmar una dirección de correo electrónico y restablecer la contraseña de un usuario en el código de cliente.
Register a New User Account
Para registrar un nuevo usuario, pase un correo electrónico y una contraseña proporcionados por el usuario al método RegisterUserAsync():
await app.EmailPasswordAuth.RegisterUserAsync(userEmail, "sekrit");
Confirm a New User's Email Address
Para confirmar un usuario recién creado, pase una confirmación token y tokenId al método ConfirmUserAsync().
Nota
Use Deep Links in Mobile Apps
Las aplicaciones móviles pueden gestionar la confirmación por correo electrónico directamente en la aplicación configurando enlaces profundosen Android,enlaces universales en iOS y/o controladores URI para la Plataforma universal de Windows (UWP).
await app.EmailPasswordAuth.ConfirmUserAsync("<token>", "<token-id>");
Reenviar un correo electrónico de confirmación
Para reenviar un correo electrónico de confirmación, llame al método ResendConfirmationEmailAsync() con la dirección de correo electrónico del usuario.
await app.EmailPasswordAuth.ResendConfirmationEmailAsync("<userEmail>");
Retry a User Confirmation Function
To resend a confirmation email using a custom function, call the RetryCustomConfirmationAsync() method with the user's email address.
await app.EmailPasswordAuth.RetryCustomConfirmationAsync("<userEmail>");
For more information, refer to Run a Confirmation Function in the App Services documentation.
Reset a User's Password
Resetting a user's password is a multi-step process.
En su aplicación de cliente, proporciona una interfaz de usuario para que el usuario restablezca su contraseña. Su App Services App puede enviar un correo electrónico o ejecutar una función personalizada para confirmar la identidad del usuario.
After confirming the user's identity, you can complete the password reset request.
After the password reset is complete, the user can log in using the new password.
Select your preferred password reset method by going to:
Tu aplicación de Atlas App Services
Authentication
Authentication Providers
Email/Password - and press the EDIT button
Send a Password Reset Email
Para enviar correos de restablecimiento de contraseña y así confirmar la identidad del usuario, se debe configurar la aplicación para enviar un correo de restablecimiento de contraseña.
Para comenzar el proceso de restablecimiento de contraseña, llama a SendPasswordResetEmailAsync() con el correo electrónico del usuario. Aplicación Services envía un correo electrónico al usuario que contiene una URL única. El usuario debe visitar esta URL dentro de los 30 minutos para confirmar el restablecimiento.
await app.EmailPasswordAuth.SendResetPasswordEmailAsync(userEmail);
Los correos electrónicos de restablecimiento de contraseña contienen una URL codificada con dos valores: token tokenIdy. Para completar el proceso de restablecimiento de contraseña, puede restablecer la contraseña del usuario en el cliente o mediante una función personalizada en el backend. Para usar el SDK y completar el restablecimiento de contraseña, pase estos valores a ResetPasswordAsync():
await app.EmailPasswordAuth.ResetPasswordAsync( myNewPassword, "<token>", "<token-id>");
If the user does not visit the URL from the password reset email within 30 minutes, the token and tokenId expire. You must begin the password reset process again.
Nota
To access the token and tokenId values sent in the password reset email, you can use an Android deep link or iOS universal link.
Ejecutar una función de restablecimiento de contraseña
Al configurar tu aplicación para que ejecute una función de restablecimiento de contraseña, defines la función que debe ejecutarse al llamar a CallResetPasswordFunctionAsync() desde el SDK. Esta función puede aceptar un nombre de usuario, una contraseña y cualquier número de argumentos adicionales. Puedes usar estos argumentos para especificar detalles como las respuestas a las preguntas de seguridad u otras pruebas que el usuario debe superar para restablecer la contraseña correctamente.
You might prefer to use a custom password reset function when you want to define your own password reset flows. For example, you might send a custom password reset email from a specific domain. You could also use a service other than email to confirm the user's identity.
On the App Services side, you define the custom password reset function that runs when you call this method. That function can return one of three possible statuses:
failpendingsuccess
A fail status is treated as an Exception by the SDK. The SDK CallResetPasswordFunctionAsync() does not take return values, so it does not return a pending or success status to the client.
Caso pendiente del lado del servidor
Tu función de restablecimiento de contraseña de Servicios de aplicación puede devolver pending si deseas que el usuario realice algún paso adicional para confirmar su identidad. Sin embargo, ese valor de retorno no se pasa a la CallResetPasswordFunctionAsync() del SDK, por lo que tu aplicación cliente debe implementar su propia lógica para gestionar un estado pending.
await app.EmailPasswordAuth.CallResetPasswordFunctionAsync( userEmail, myNewPassword);
Es posible que su función del lado del servidor envíe un correo electrónico mediante un proveedor de correo personalizado. También puede usar SMS u otro servicio para verificar la identidad del usuario.
Tienes acceso a token y tokenId en el contexto de la función de restablecimiento de contraseña de App Services. Si pasas esta información desde la función de restablecimiento de contraseña de App Services, puedes devolver estos valores a tu aplicación mediante enlaces profundos específicos de la plataforma o enlaces universales. Luego, tu aplicación cliente puede llamar a ResetPasswordAsync() para completar el proceso de restablecimiento de contraseña.
await app.EmailPasswordAuth.ResetPasswordAsync( myNewPassword, "<token>", "<token-id>");
Nota
To access the token and tokenId values sent from a custom password reset function, you can use an Android deep link or iOS universal link.
Server-Side Success Case
Si tu función de restablecimiento de contraseña de App Services realiza una validación adicional dentro de la función, o si validaste la identidad del usuario antes de intentar restablecer la contraseña, puedes configurar la función de App Services para que devuelva success. Sin embargo, ese valor de retorno no se pasa a la CallResetPasswordFunctionAsync() del SDK, por lo que tu aplicación cliente debe implementar su propia lógica para gestionar un estado success.
Llamar a la función en este ejemplo realiza todo el proceso de restablecimiento de contraseña.
await app.EmailPasswordAuth.CallResetPasswordFunctionAsync( userEmail, myNewPassword, "<security-question-1-answer>", "<security-question-2-answer>");