【发布时间】:2015-07-15 16:17:54
【问题描述】:
在以 API 为中心的应用程序上使用 JWT 而不是 Cookie 有很多优势,我知道您可以在通过浏览器访问应用程序时将令牌存储在 sessionStorage 中。 您可以在您的 JS 代码上设置一个拦截器,以便在 GET 请求的 Authorization 标头中注入 JWT 令牌——只要这些 GET 请求是从对用户进行身份验证的相同代码发出的。
但是当用户通过身份验证,然后打开一个新选项卡并尝试访问应用程序/网站的不同限制区域(甚至相同区域)时会发生什么?在这种情况下,没有拦截器可以在新选项卡上的 Authorization 标头上注入令牌。我想服务器会收到 GET 请求,在 Authorization 标头上查找 JWT 令牌并找不到它,拒绝请求。
当您使用 Cookie 时,它们总是由浏览器本地发送,您不必担心新标签和身份验证。
当用户在第一个选项卡中进行身份验证时,有没有办法在浏览器上为域全局设置授权标头?如果有的话,通常的解决方案是什么?
【问题讨论】:
标签: javascript authentication cookies tabs jwt