從(移動)應用程序調用Keycloak的註銷端點時遇到問題。通過Keycloak REST API註銷用戶不起作用
如its documentation指出此方案被支撐:
/境界/ {領域名} /協議/ 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>
但始終出現此錯誤:
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"
}
似乎Keycloak是無法檢測到當前客戶端的身份事件,如果我提供access_token。我所使用的相同的access_token訪問其他Keycloak的API,沒有任何問題,像用戶信息 (/auth /中境界//協議/ OpenID的連接/用戶信息)。
我的請求是基於這個Keycloak's issue。問題的作者得到了它的工作,但它不是我的情況。
我正在使用Keycloak 3.2.1.Final。
你有同樣的問題嗎?你有什麼想法如何解決它?