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