如何解决延长.net Core 3.1的令牌寿命
如何配置.NET Core 3.1中生成的令牌的TokenLifespan
?我正在使用以下代码,但是它无法正常工作,并且仍在使用默认值1天的TokenLifespan
。
public void ConfigureServices(IServiceCollection services){
//...
services.Configure<DataProtectionTokenProviderOptions>(options =>
{
options.TokenLifespan = TimeSpan.FromDays(5);
});
//...
}
当有一个内置选项可以通过上面给出的代码对其进行更改时,我对通过自定义类进行配置不感兴趣,但是我不知道我做错了什么,它覆盖了我定义的TokenLifeSpan
值。 / p>
解决方法
document显示了如何更改电子邮件令牌的寿命,您需要添加自定义的DataProtectorTokenProvider<TUser>
和DataProtectionTokenProviderOptions
。
与github问题相同:
https://github.com/dotnet/AspNetCore.Docs/issues/5436#issuecomment-373965907
,如果您使用的是基于TotpSecurityStampBasedTokenProvider的提供程序,即EmailTokenProvider或PhoneNumberTokenProvider,那么我认为这是不可能的。
Totp提供程序生成6位数字代码,并且寿命为3分钟,相差90秒。
如果需要更长的时间,您可能必须找到一种创建自己的OTP的方法。
编辑
在this上有关于如何覆盖Rfc6238AuthenticationService以延长/减少令牌寿命的帖子
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。