从(移动)应用程序调用Keycloak的注销端点时遇到问题.
支持此方案的文档中所述:
/境界/ {领域名} /协议/ OpenID的连接/注销
注销端点注销经过身份验证的用户.
可以将用户代理重定向到端点,在这种情况下,将注销活动用户会话.之后,用户代理将重定向回应用程序.
端点也可以由应用程序直接调用.要直接调用此端点,需要包含刷新令牌以及验证客户端所需的凭据.
我的请求有以下格式:
POST http://localhost:8080/auth/realms/<my_realm>/protocol/openid-connect/logout
Authorization: Bearer <access_token>
Content-Type: application/x-www-form-urlencoded
refresh_token=<refresh_token>
Run Code Online (Sandbox Code Playgroud)
但总是会出现此错误:
HTTP/1.1 400 Bad Request
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/10
Content-Type: application/json
Content-Length: 123
Date: Wed, 11 Oct 2017 12:47:08 GMT
{
"error": "unauthorized_client",
"error_description": "UNKNOWN_CLIENT: Client was not identified by any client authenticator"
}
Run Code Online (Sandbox Code Playgroud)
如果我提供了access_token,Keycloak似乎无法检测到当前客户端的身份事件.我使用相同的access_token来访问其他Keycloak的API而没有任何问题,例如userinfo (/ auth/realms // protocol/openid-connect/userinfo).
我的请求是基于这个Keycloak的问题.该问题的作者得到了它的工作,但这不是我的情况.
我正在使用Keycloak 3.2.1.Final.
你有同样的问题吗?你知道如何解决它吗?
keycloak ×1