Keycloak返回已过期的令牌

时间:2020-10-26 17:38:16

标签: jwt single-sign-on keycloak openid access-token

我正在尝试使用密钥斗篷获取访问令牌,

但是尝试使用由密钥斗篷发出的令牌时出现错误Token is expired

例如,如果我使用curl获得令牌:

curl -u account:___mysecret___ -k
-d "grant_type=password&username=testuser&password=__some__pass"
-H "Content-Type:application/x-www-form-urlencoded" 
http://localhost:8080/auth/realms/testRealm/protocol/openid-connect/token

并使用jwt.io解码返回的令牌,我可以看到exp日期是昨天的日期。

如何获得可用的访问令牌?

2 个答案:

答案 0 :(得分:1)

在“领域设置”中检查“令牌”选项卡!您可以在其中配置会话超时和令牌有效性。

如果设置了某些内容,请进一步检查“客户端” =>“设置” =>“高级设置”。

然后请检查在您的Keycloak主机上配置的时间和时区。

答案 1 :(得分:1)

我认为您在 Windows 上使用带有 docker 桌面的 keycloak。

您的 hyperV 的本地时间不再与您的主机同步。

如果您在 docker 容器中写了:date,则日期是错误的。

所以keycloak的token类型已经过时了

因此,重新启动 hyperV 会重新同步 docker 容器中的本地时间。

更多信息:How to make sure docker's time syncs with that of the host?