You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core Identity中手机号令牌的有效期是多久?如何修改?

GenerateChangePhoneNumberTokenAsync 令牌有效期说明及配置方法

默认有效期

ASP.NET Core Identity 框架中,GenerateChangePhoneNumberTokenAsync 生成的更改手机号令牌默认有效期为24小时,该令牌基于身份验证框架自带的 Totp 令牌生成逻辑生成,默认绑定用户的安全戳,用户安全戳变更后未使用的令牌会直接失效。

自定义有效期配置方法

直接在服务注册阶段配置对应令牌提供者的生命周期即可,示例代码如下:

// 以.NET 6+ 顶级语句注册服务为例
builder.Services.AddDefaultIdentity<IdentityUser>(options =>
{
    // 指定更改手机号操作使用的令牌提供者
    options.Tokens.ChangePhoneNumberTokenProvider = TokenOptions.DefaultPhoneProvider;
})
// 配置对应令牌提供者的有效期规则
.AddTokenProvider<DataProtectorTokenProvider<IdentityUser>>(TokenOptions.DefaultPhoneProvider)
.Configure<DataProtectionTokenProviderOptions>(TokenOptions.DefaultPhoneProvider, options =>
{
    // 按需自定义有效期,以下示例设置为10分钟
    options.TokenLifespan = TimeSpan.FromMinutes(10);
});

补充说明

  • 若你需要同时调整重置密码、更改邮箱等其他操作的令牌有效期,可针对对应操作的令牌提供者单独配置TokenLifespan参数即可,无需修改全局配置影响其他业务逻辑。
  • 手机号更改属于敏感操作,若搭配短信下发验证码场景,建议设置有效期为5~15分钟,可同时降低泄露风险和提升用户体验。

内容的提问来源于stack exchange,提问作者Milad Ahmadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:06:08