ASP.NET Core Identity 将其生成的令牌存储在哪里?

Where does ASP.NET Core Identity stores its generated tokens?

新注册后,用户需要确认his/herphone个号码。发送的验证码有效期为5分钟,新验证码每5分钟重新生成一次。

以下代码生成一个新的 phone 号码 code/token:

var code = await userManager.GenerateChangePhoneNumberTokenAsync(user, user.PhoneNumber);

VerifyChangePhoneNumberTokenAsync用于验证。

此代码存储在哪里?

Identity 是否有任何计时字段,还是我必须自己实现?

根据源代码,我们可以发现 GenerateChangePhoneNumberTokenAsync 将使用 PhoneNumberTokenProvider 来生成和验证令牌。

PhoneNumberTokenProvider继承了TotpSecurityStampBasedTokenProvider,在生成或验证token时,会先获取用户的SecurityStamp。

此 SecurityStamp 通常存储在数据库中,并将根据此 SecurityStamp 生成正确的安全代码。