如何为IdentityServer4.Contrib.RedisStore的刷新令牌配置TTL
解决方案:为Redis存储的刷新令牌配置TTL值
IdentityServer4.Contrib.RedisStore的OperationalStore配置项中,内置了针对各类令牌的TTL设置属性,你可以直接通过配置RefreshTokenExpiration来指定刷新令牌在Redis中的过期时间,同时可搭配清理间隔参数优化过期令牌的自动清理逻辑。
修改你现有的配置代码如下:
services.AddIdentityServer(options => { ...//some code }) .AddOperationalStore(opt => { opt.ConfigurationOptions = redisOptions; opt.KeyPrefix = "MyAPP"; // 设置刷新令牌在Redis中的TTL,示例为30天 opt.RefreshTokenExpiration = TimeSpan.FromDays(30); // 可选:设置后台清理过期令牌的执行间隔,示例为每天一次 opt.RefreshTokenCleanupInterval = TimeSpan.FromDays(1); });
补充说明
RefreshTokenExpiration直接对应Redis键的TTL值,IdentityServer4会在存储刷新令牌时自动为Redis键设置该过期时间。- 如果你没有手动设置
RefreshTokenExpiration,RedisStore会默认遵循IdentityServer配置中刷新令牌的AbsoluteExpiration或SlidingExpiration规则来设置TTL。 RefreshTokenCleanupInterval用于指定后台任务清理Redis中已过期令牌的频率,可根据业务需求调整。
内容的提问来源于stack exchange,提问作者Sandeep Manchukonda
相关产品推荐
相关产品推荐

