繁体   English   中英

为什么 IdentityServer persistedgrants 中没有更新刷新令牌到期?

[英]Why is the refresh-token expiration not renewed in IdentityServer persistedgrants?

我正在使用 .NET Core 和 IdentityServer4 来创建访问令牌。 这些访问令牌还包括一个刷新令牌,可用于请求新的访问令牌。 由于一些用户报告说他们过早退出,我在本地环境中进行了测试。 我将访问令牌生命周期设置为 10 秒,将刷新令牌生命周期设置为 30 秒。 预期的行为是,只要您在 30 秒以下请求新令牌,您就会一直登录。 然后我每隔几秒钟发送一个请求。 刷新令牌每 10 秒请求一个新的访问令牌。 为此,我使用扩展方法“RequestRefreshTokenAsync”。 但这仅适用于最大值。 3次:

04.12.2020 15:09:02 Using refresh token iCmtHJa5jllqTkwUexI9ZMLGN0RQhqvXljun6AgR31M.
04.12.2020 15:09:02 Success, new refresh token T0R8BWfNwkBzBh_yDKzhqerzgRgxY9OZ3jWLG951-hc.
04.12.2020 15:09:13 Using refresh token T0R8BWfNwkBzBh_yDKzhqerzgRgxY9OZ3jWLG951-hc.
04.12.2020 15:09:13 Success, new refresh token W29SlwHP318d4NFaqRS5ZTJAUG-ugYMBQrV6-g6v1rk.
04.12.2020 15:09:23 Using refresh token W29SlwHP318d4NFaqRS5ZTJAUG-ugYMBQrV6-g6v1rk.
04.12.2020 15:09:23 Error: invalid_grant

在我发现这一点后,我还查看了 IdentityServer 的persistedgrants 表,似乎对于每个刷新的访问令牌,都存储了相同的 CreationTime 和 Expiration 日期:

ocDMiwVpOJrcWh5LmEPgzDnn15TED5FpxSEpXsXDMzY= 2020-12-04 15:08:51.000000 2020-12-04 15:09:21.000000
i+NjVCnMUoobpnaINoLrCGcQrWHloIaAHC4NHWwGyK4= 2020-12-04 15:08:51.000000 2020-12-04 15:09:21.000000
d9HjtUszofxOEcnV7w95dhn54rl8QI2IRq8UMZlKr1Y= 2020-12-04 15:08:51.000000 2020-12-04 15:09:21.000000

我期望的是,当我请求一个新的访问令牌时,显然新的刷新令牌也会获得一个新的到期日期。

有人知道我是否缺少特定设置或如何解决此问题?

我为解决这个问题所做的就是将您的刷新令牌设置为具有滑动到期。 如果您在滑动到期之前请求新的访问令牌,则刷新令牌到期将被延长。 这应该可以在您的身份服务器客户端设置中进行配置。 在此处查看文档: http://docs.identityserver.io/en/release/topics/refresh_tokens.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM