我在我的Spring Boot应用程序中集成了密钥斗篷。我有一个注销问题。现在我正在使用
POST http://localhost:8080/auth/realms/ /协议/ openid-connect / logout
授权:承载 内容类型:application / x-www-form-urlencoded
问题是此注销API允许从一台设备注销。让我们考虑一下,如果我从多个设备登录并从一个设备注销,那么我的另一个设备应用程序仍然登录。有什么方法可以使我的应用程序一次注销,所以如果我从一个设备注销,我的帐户将从所有设备注销
答案 0 :(得分:0)
看着您的问题(到目前为止没有代码示例)我假设您“允许”允许来自不同设备的多次登录。可能您正在寻找更多道德答案。在这种情况下,您的解决方案应基于令牌状态。
通常来说,您无法一次根据KeyCloack级别从所有设备神奇地注销。
例如,如果您从其他设备登录gmail,则在注销操作中,除非您在应用程序指示logout from all devices
中明确拥有控制权,否则您不会从所有设备中注销。
您将需要在应用程序中进行令牌状态检查,以检查您是否具有有效的令牌状态(可能在SAML响应中添加了SAML属性)。您可以将POSt请求区分为logout
和logoutAll
。
但是,当您拥有第三方身份提供程序-KeyCloack时,您仍将在其他设备中使用过时的应用程序状态。您执行一些尝试验证令牌并失败的操作后,会根据logoutAll
请求将您注销。