应用程序用户管理器的生成 ___ 令牌方法



我看到应用程序用户管理器上有 5 种不同的生成令牌方法,例如:

  • 经理。GenerateChangePhoneNumberToken((
  • 经理。GenerateEmailConfirmationToken((
  • 经理。GeneratePasswordResetToken((
  • 经理。GenerateTwoFactorToken((
  • 经理。GenerateUserToken((

当其他 4 个存在时,生成用户令牌的意义何在?你什么时候只使用GenerateUserToken而不使用其他任何令牌?

是否可以将来自 GenerateUserToken 的用户令牌代替其他 4 个用于所有可能的令牌请求任务?

试图更好地理解这些,但通过搜索没有找到太多帮助。谢谢!

如果你查看UserManager的源代码,你会发现GenerateUserTokenAsync(string purpose, TKey userId)是逻辑最多的一个。您谈论的所有其他方法是此方法的快捷方式,并指定了参数purpose

因此,当您需要重置密码时,您调用GeneratePasswordResetTokenAsync(TKey userId),而GenerateUserTokenAsync("ResetPassword", userId)又调用

。此purpose参数在令牌中编码,在返回的过程中,当验证令牌时,此目的必须与令牌生成相同。 即为密码重置生成的令牌将不适用于电子邮件确认。

最新更新