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
相关产品推荐
相关产品推荐

