【发布时间】:2017-07-06 20:08:23
【问题描述】:
我目前正在使用 keycloak 2.5.0 做一个小项目 我已经设置了用户登录,现在我正在尝试实现页面范围的 logout 按钮。
正如documentation 所述,简称为路由 http://my-auth-server/auth/realms/master/protocol/openid-connect/logout?redirect_uri=http://application-root.com/ 为了简单起见,我使用了一个锚标记来发出这个 GET 请求。
如果我查看 Firefox 开发人员工具的“网络”选项卡,一切似乎都运行良好。我正在返回重定向请求的 302 状态代码。之后,应用程序成功请求 http://application-root.com/,状态码为 200,并将我重定向到此页面。
但是当我想再次请求锁定的内容(由 keycloak 保护的内容)时,它仍然可以访问。
但每当我在重定向后手动删除 JSESSIONID 和 KEYCLOAK_ADAPTER_STATE cookie 时,一切正常,并且我已正确注销。遗憾的是,我无法以编程方式删除这些 cookie,因为它们是 HttpOnly
这个请求的预期行为是什么?
我错过了什么吗?
有没有人经历过类似的事情?
感谢您的帮助
【问题讨论】:
-
我遇到了类似的问题,因为我没有将参数
refresh_token和client_id作为数据传递给 que 注销请求。即使不是 OK,注销端点也总是返回 200 OK。你能试试看会发生什么吗?无论如何,我在这里缺少一些信息。你在使用 Spring 适配器吗?你的配置是什么? -
这个有什么答案吗?
-
@Ruben:根据docs,我看不出
refresh_token和client_id是有效的参数...您是否了解更多信息? -
@PeterV.Mørch 这是 3 年前的事了,很可能情况发生了变化,我的回答不再有意义。我指的是在 HTTP 正文请求中包含 refresh_token 和 client_id 以注销。此字段值在登录响应中提供。
标签: session cookies login logout keycloak