使用python请求会话注销keychope网关守卫

2024-05-15 11:42:54 发布

您现在位置:Python中文网/ 问答频道 /正文

使用浏览器

如果我使用浏览器登录和注销,一切正常

我用密匙斗篷窗体登录 我通过在浏览器中粘贴以下内容注销

{}/oauth/logout?redirect={}/auth/realms/{}/protocol/openid-connect/logout

当我检查keyclope管理页面时,会话会按预期被删除

使用python请求会话

我使用以下方式登录

^{pr2}$

这是有效的,当我试图访问任何端点后,我可以登录

我使用以下方法注销

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,
)

这会让我从gatekeeper注销并清除cookies(我不能访问和终结点,这是正确的),但是在keychope管理页面中,我仍然看到我的会话处于活动状态。在

饼干应该保存在会议期间,有人知道为什么吗?谢谢

编辑:

我认为这是因为当我使用端点通过gatekeeper登录时

/oauth/login

它不返回我使用浏览器时得到的这3个cookies

AUTH_SESSION
KEYCLOAK_IDENTITY
KEYCLOAK_SESSION

这3个cookie来自端点

https://{}/auth/realms/{}/protocol/openid-connect/token

但是,由于我不通过表单登录,所以我没有这些令牌


Tags: selfauthhosturlconnect浏览器页面openid