我正在尝试使用密钥斗篷获取访问令牌,
但是尝试使用由密钥斗篷发出的令牌时出现错误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日期是昨天的日期。
如何获得可用的访问令牌?
答案 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?