gpt4 book ai didi

javascript - JWT:用户打开新标签页时如何处理 GET 请求?

转载 作者:可可西里 更新时间:2023-11-01 02:43:10 24 4
gpt4 key购买 nike

在以 API 为中心的应用程序上使用 JWT 而不是 Cookies 有很多优势,我知道您可以在通过浏览器访问应用程序时将 token 存储在 sessionStorage 上。您可以在 JS 代码上设置一个拦截器,以在 GET 请求的授权 header 上注入(inject) JWT token ——只要这些 GET 请求是从对用户进行身份验证的相同代码发出的。

但是当用户通过身份验证,然后打开一个新选项卡并尝试访问应用程序/网站的不同限制区域(甚至相同区域)时会发生什么?在这种情况下,没有拦截器将 token 注入(inject)新选项卡上的授权 header 。我想服务器将收到 GET 请求,在 Authorization header 上查找 JWT token ,但找不到,因此拒绝请求。

当您使用 Cookie 时,它​​们始终由浏览器 native 发送,您不必担心新标签和身份验证。

有没有办法在用户在第一个选项卡中进行身份验证时在浏览器上为域全局设置授权 header ?如果有的话,这个问题的通常解决方案是什么?

最佳答案

在没有正确凭据(如 JWT)的情况下访问 protected URL 时,浏览器将被重定向到特定端点(例如在授权服务器上),在那里它可以获得新的 JWT。

例如在 OpenID Connect 隐式流中会发生这种情况:http://openid.net/specs/openid-connect-implicit-1_0.html

但也可以将 JWT 存储在 cookie 中。这不是呈现 JWT 的标准化方式,因此它将特定于您的客户端/浏览器和 protected 应用程序。

关于javascript - JWT:用户打开新标签页时如何处理 GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com