3

我有应该在 10 小时内有效的访问令牌,但它会在 30 分钟后过期。我用它来调用 Keycloak rest api,它工作了半个小时,但在那之后我得到 401 - Unauthorized。我在 jwt.io 上对其进行了解码,并且 exp 声明是在我获取它后 10 小时。我检查了系统时间,一切似乎都很好。可能是什么问题呢?

4

1 回答 1

3

由于您尚未共享您的配置,我假设您将“访问令牌寿命”设置为 10 小时(正如您提到的那样,这反映在您的 jwt 中)。

为避免反复登录,您需要将 SSO 会话时间设置为 10 小时。(见下图中突出显示的 2 和 3。)

现在来访问令牌,如果您使用浏览器测试您的 api,您可以将其设置为小于 SSO 会话值的任何值。因为会话 cookie 将由 keycloak 自动处理。

但是,如果您使用 PostMan 或其他客户端来测试您的 API 并希望使用相同的令牌 10 小时,那么将您的访问令牌也设置为 10 小时。

在此处输入图像描述

有关更多详细信息,请参阅:https ://www.keycloak.org/docs/latest/server_admin/#_timeouts

于 2020-06-29T14:52:30.683 回答