如果我使用浏览器登录和注销,一切都能找到
例如我使用keycloak表单登录 然后通过将以下内容粘贴到浏览器中来注销
{}/oauth/logout?redirect={}/auth/realms/{}/protocol/openid-connect/logout
当我检查keycloak管理页面时,会话将按预期方式删除
我使用以下内容登录
r = self.session.post(
"{}/oauth/login".format(self.host),
data={"username": username, "password": password},
verify=False
)
这有效,当我尝试访问登录后能够访问的任何端点
我使用以下内容注销
url = "{}/oauth/logout?redirect={}/auth/realms/{}/protocol/openid-connect/logout".format(
self.host,
self.host,
self.realm_name
)
r = self.session.get(
url,
allow_redirects=True,
verify=False,
)
这使我退出网闸并清除cookie(我无法访问和正确的端点),但是在keycloak管理页面中,我仍然看到我的会话处于活动状态。
cookie应该保留在会话中,谁知道为什么?谢谢
编辑:
我认为这是因为当我使用端点通过网守登录时
/oauth/login
它不返回我使用浏览器时得到的这3个Cookie
AUTH_SESSION
KEYCLOAK_IDENTITY
KEYCLOAK_SESSION
这3个Cookie来自端点
https://{}/auth/realms/{}/protocol/openid-connect/token
但是,由于我没有通过表单登录,所以我没有这些令牌