我看到ApplicationUserManager上有5种不同的Generate Token方法,例如:
当其他4个存在时,GenerateUserToken有什么意义?你什么时候才能使用GenerateUserToken,而不是其他任何人?
是否可以使用GenerateUserToken的UserToken而不是其他4来处理所有可能的令牌请求任务?
尝试更好地理解这些,但通过搜索找不到多少帮助。谢谢!
答案 0 :(得分:1)
如果你查看UserManager的source code,你会发现GenerateUserTokenAsync(string purpose, TKey userId)
是逻辑最多的那个。您谈到的所有其他方法都是指定参数purpose
的此方法的快捷方式。
因此,当您需要重置密码时,请拨打GeneratePasswordResetTokenAsync(TKey userId)
,然后拨打GenerateUserTokenAsync("ResetPassword", userId)
。
此purpose
参数在令牌中编码,在返回的路上,当验证令牌时,此目的必须与令牌生成相同。即为密码重置生成的令牌不适用于电子邮件确认。