通过 /oauth/logout 的 Keycloak 网守注销不起作用

Keycloak gatekeeper logout via /oauth/logout does not work

我正在使用 keycloak gatekeeper 来保护一个简单的前端 Web 应用程序,它运行良好;用户需要先登录才能访问实际站点。

问题是登出。当我使用 /oauth/logout URL 时,它似乎破坏了应用程序中的本地会话,但实际上并没有将用户注销。下次刷新,用户又登录了

我检查了 keycloak 网守日志,每当我点击注销时 URL 我看到了这个;

error invalid response from revocation endpoint {"status": 400, "response": "{\"error\":\"invalid_grant\",\"error_description\":\"Invalid refresh token\"}"}

error no session found in request, redirecting for authorization {"error": "authentication session not found"}

info issuing access token for user {"email": "test@test.com", "expires": "2019-11-08T12:11:35Z", "duration": "4m59.409151193s"}

看起来它试图调用撤销-url,但失败了,然后再次让用户登录。问题是为什么调用 revocation-url 失败。我没有设置任何自定义设置,这只是 keycloak + keycloak-gatekeeper 几乎开箱即用。

任何人都可以阐明这一点吗?

这是网守配置(部署在 Kubernetes 中);

secure-cookie: false
client-id: dashboard
client-secret: xxx
discovery-url: https://xxx/auth/realms/dashboard
enable-default-deny: true
encryption_key: xxx
listen: 0.0.0.0:3000
redirection-url: https://domain.tld
upstream-url: http://127.0.0.1:80

Invalid refresh token => 您需要启用刷新令牌:

enable-refresh-tokens: true
encryption-key: <your enryption key>