身份服务器4中的刷新令牌生存期没有限制

时间:2019-06-17 10:52:26

标签: .net jwt microservices identityserver4

我使用了微服务,目前正在使用JWT访问令牌进行访问。但是访问令牌会在一定时间内消失。为了克服这种情况,我实现了刷新令牌来更新过期的访问令牌。现在,我想对刷新令牌的生存期没有限制。如何实现呢?

注意:我正在使用身份服务器4生成JWT令牌

2 个答案:

答案 0 :(得分:1)

查看代码,验证刷新令牌的生存期,我刚刚看到了

return (now > creationTime.AddSeconds(lifetime));

所以答案是:不可能将其设置为无界。

不过,您可以随意将默认值2592000秒/ 30天更改为更长的时间。刚刚设置

AbsoluteRefreshTokenLifetime = <your_desired_value>

在Identityserver中的每个客户端配置中

答案 1 :(得分:1)

RefreshTokenExpiration = SlidingAbsoluteRefreshTokenLifetime = 0设置为documented

DefaultRefreshToken服务会将其视为不确定的幻灯片。相关代码:

// if absolute exp > 0, make sure we don't exceed absolute exp
// if absolute exp = 0, allow indefinite slide

var currentLifetime = refreshToken.CreationTime.GetLifetimeInSeconds(Clock.UtcNow.UtcDateTime);
var newLifetime = currentLifetime + client.SlidingRefreshTokenLifetime;

// zero absolute refresh token lifetime represents unbounded absolute lifetime
// if absolute lifetime > 0, cap at absolute lifetime
if (client.AbsoluteRefreshTokenLifetime > 0 && newLifetime > client.AbsoluteRefreshTokenLifetime)
{
    newLifetime = client.AbsoluteRefreshTokenLifetime;
}
refreshToken.Lifetime = newLifetime;

SlidingRefreshTokenLifetime设置为更长的时间,例如一个月。

通过这些设置,用户可以无限期刷新令牌,但有一个限制:用户不能处于不活跃状态的时间不能超过一个月。

您可以将此值调整为可接受的到期时间。

相关问题