Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ /

托管电子邮件/密码用户 - .NET SDK

在此页面上

  • Overview
  • 注册新用户帐户
  • 确认新用户的电子邮件地址
  • 重新发送确认电子邮件
  • 重试用户确认函数
  • 重置用户密码
  • 发送密码重置电子邮件
  • 运行密码重置功能

如果您已在应用中启用电子邮件/密码提供商,则可以注册新帐户、确认电子邮件解决以及在客户端代码中重置用户密码。

要注册新用户,请将用户提供的电子邮件和密码传递给RegisterUserAsync()方法:

await app.EmailPasswordAuth.RegisterUserAsync(userEmail, "sekrit");

要确认新创建的用户,请将确认 tokentokenId传递给ConfirmUserAsync()方法。

注意

在移动应用程序中使用深层链接

await app.EmailPasswordAuth.ConfirmUserAsync("<token>", "<token-id>");

若要重新发送确认电子邮件,请使用用户的电子邮件地址调用ResendConfirmationEmailAsync()方法。

await app.EmailPasswordAuth.ResendConfirmationEmailAsync("<userEmail>");

要使用自定义函数重新发送确认电子邮件,请使用用户的电子邮件地址调用RetryCustomConfirmationAsync()方法。

await app.EmailPasswordAuth.RetryCustomConfirmationAsync("<userEmail>");

有关更多信息,请参阅 Atlas App Services文档中的 运行确认函数 。

重置用户密码是一个多步骤的过程。

  1. 在客户端应用程序中,您为用户提供一个用于重置密码的用户界面。 然后,您的 App Services App 可以发送电子邮件或运行自定义函数来确认用户的身份。

  2. 确认用户身份后,即可完成密码重置请求。

  3. 密码重置完成后,用户可以使用新密码登录。

选择您首选的密码重置方法:

  1. 您的 Atlas App Services App

  2. Authentication

  3. Authentication Providers

  4. Email/Password - 然后按EDIT按钮

要发送密码重置电子邮件以确认用户身份,您必须将应用配置为发送密码重置电子邮件。

要开始密码重置进程,请使用用户的电子邮件调用SendPasswordResetEmailAsync() 。 App Services会向用户发送电子邮件包含唯一URL的电子邮件。 用户必须在30分钟内访问此URL才能确认重置。

await app.EmailPasswordAuth.SendResetPasswordEmailAsync(userEmail);

密码重置电子邮件包含用两个值tokentokenId编码的URL 。 要完成密码重置流程,您可以在客户端或通过调用后端的自定义函数来重置用户的密码。 要使用 SDK 完成密码重置,请将以下值传递给ResetPasswordAsync():

await app.EmailPasswordAuth.ResetPasswordAsync(
myNewPassword, "<token>", "<token-id>");

如果用户在 30 分钟内没有访问密码重置电子邮件中的 URL, tokentokenId则会过期。 您必须再次开始密码重置过程。

注意

要访问密码重置电子邮件中发送的tokentokenId 值,您可以使用 Android 深层链接 iOS 通用链接。

当您将应用配置为运行密码重置函数时,您可以定义在从 SDK 调用CallResetPasswordFunctionAsync()时应运行的函数。 此函数可以接受用户名、密码和任意数量的其他参数。 您可以使用这些参数指定用户应传递以成功完成密码重置的详细信息,例如安全问题答案或其他挑战。

如果要定义自己的密码重置流程,您可能更愿意使用自定义密码重置函数。 例如,您可以从特定域发送自定义密码重置电子邮件。 您还可以使用电子邮件以外的服务来确认用户的身份。

在 App Services 端,您可以定义在调用此方法时运行的自定义密码重置函数。 该函数可以返回三种可能的状态之一:

  • fail

  • pending

  • success

SDK 将fail状态视为异常。 SDK CallResetPasswordFunctionAsync()不接受返回值,因此它不会向客户端返回pendingsuccess状态。

如果您希望用户采取一些额外步骤来确认其身份,您的Atlas App Services密码重置函数可能会返回 pending。 但是,该返回值不会传递给 SDK 的CallResetPasswordFunctionAsync() ,因此客户端应用程序必须实现自己的逻辑来处理pending状态。

await app.EmailPasswordAuth.CallResetPasswordFunctionAsync(
userEmail, myNewPassword);

您的服务器端函数可能会使用自定义电子邮件提供商发送电子邮件。 您还可以使用短信或其他服务来确认用户的身份。

您可以在Atlas App Services密码重置函数上下文中使用 tokentokenId。 如果您通过Atlas App Services密码重置功能传递此信息,则可以使用特定于平台的深度链接或通用链接将这些值传递回您的应用程序。 然后,客户端应用程序可以调用ResetPasswordAsync()来完成密码重置流程。

await app.EmailPasswordAuth.ResetPasswordAsync(
myNewPassword, "<token>", "<token-id>");

注意

要访问权限从自定义密码重置函数发送的tokentokenId 值,您可以使用 Android 深层链接 iOS通用链接。

如果Atlas App Services密码重置函数在函数内进行了额外验证,或者如果您在尝试重置密码之前已验证用户身份,则可以将Atlas App Services函数配置为返回 success。 但是,该返回值不会传递给 SDK 的CallResetPasswordFunctionAsync() ,因此客户端应用程序必须实现自己的逻辑来处理success状态。

调用本示例中的函数会执行整个密码重置过程。

await app.EmailPasswordAuth.CallResetPasswordFunctionAsync(
userEmail, myNewPassword,
"<security-question-1-answer>",
"<security-question-2-answer>");

后退

用户元数据