【问题标题】:Identity Server 4 Refresh Token Expiration Not WorkingIdentity Server 4 刷新令牌过期不起作用
【发布时间】:2019-07-30 21:46:48
【问题描述】:

我在 Identity Server 4 身份验证服务器中创建了一个客户端并设置了以下令牌属性:

 var idsClient = new Client
                {
                    ClientName = parsedResult.Name,
                    ClientId = parsedResult.ClientId,
                    RequireConsent = false,
                    RequirePkce = false,
                    AllowOfflineAccess = true,
                    AllowAccessTokensViaBrowser = true,
                    RefreshTokenUsage = TokenUsage.OneTimeOnly,
                    RefreshTokenExpiration = TokenExpiration.Sliding,
                    AccessTokenLifetime = 7200, //2 hours
                    AbsoluteRefreshTokenLifetime = 2592000, //30 days
                    SlidingRefreshTokenLifetime = 1296000 //15 days
                };

当我请求访问令牌时,它的过期时间设置为 2 小时,并返回一个刷新令牌值。当我请求刷新令牌时,到期仍设置为 2 小时而不是 15 天。

以下是令牌和刷新令牌请求的选择:

【问题讨论】:

    标签: jwt identityserver4 refresh-token


    【解决方案1】:

    您不请求刷新令牌,但您使用刷新令牌来请求访问令牌

    由于你配置了TokenUsage.OneTimeOnly,每个成功的响应都会返回两个token:

    • 访问令牌
    • 刷新令牌

    我不确定您希望将哪个令牌设置为 15 天,但在这种情况下,访问令牌的生命周期应始终为两个小时。

    【讨论】:

    • 你不能。访问令牌的有效期始终为两个小时。
    • 所以我得到了术语,这就是我正在做的事情......我正在使用刷新令牌来请求访问令牌,并且该访问令牌始终设置为在 2 小时内到期。如何从刷新令牌请求中获取访问令牌以在 15 天内过期?刷新令牌是否持续 15 天...意味着它将请求访问令牌 15 天直到过期?每个访问令牌又会在 2 小时内过期吗?另外,我也尝试过 RefreshTokenUsage = TokenUsage.ReUse,结果相同。
    • 好的,我想我现在明白了。谢谢
    • 是的,您可以使用访问令牌 15 天,最多 30 天(刷新令牌的绝对生命周期)。然后用户必须再次登录。
    猜你喜欢
    • 2017-06-29
    • 2021-03-01
    • 2020-08-05
    • 2014-09-18
    • 2020-11-12
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多