删除用户注销API的grafana cookie

问题描述 投票:0回答:2

我正在使用grafana HTTP API在grafana上构建前端应用程序。 用户身份验证采用基本身份验证模型(默认grafana身份验证)。我需要注销 API,这会导致

grafana_session
cookie 过期。

我无法从我的脚本中删除

grafana_session
cookie,因为 httpOnly 标志已打开。您能帮我处理用户注销吗?

我更改的唯一 grafana 配置是以下两个配置:

# set cookie SameSite attribute. defaults to `lax`. can be set to "lax", "strict", "none" and "disabled"
cookie_samesite = none

# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. d$
allow_embedding = true
cookies grafana setcookie httpcookie grafana-api
2个回答
1
投票

我找到了解决方案并在这里分享,以帮助有同样问题的人。

正如 Jan 在评论中所说,Cookies 用于 UI 身份验证,并且是从服务器设置的。

HttpOnly
标志使cookie在跨站点脚本(XSS)风险中保持安全,并且不能从js脚本中删除或覆盖。

Grafana 的默认身份验证使用

grafana_session
cookie,这是一个 HttpOnly cookie。因此,如果其他人需要知道我们如何删除用于用户注销的
grafana_session
cookie,您应该只调用
/logout
端点。

axios.get('http://localhost:3000/logout')

它会自动在请求标头中设置cookie,这将删除

geafana_session
令牌,并且用户需要登录才能进行下一个请求。

headers: {
  Cookie: 'grafana_session=; Path=/; Max-Age=0; HttpOnly; SameSite=Lax'
}

以下链接帮助我了解 HttpOnly cookie。可能对其他人有用:

https://stackoverflow.com/a/1085792/16994002

https://security.stackexchange.com/questions/211356/delete-secure-cookie-using-javascript

https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/


0
投票

非常感谢! 我仍在与 Cors 作斗争,因为我框架中有 Grafana。但快到了!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.