【问题标题】:How to manage JWT token stored in cookie in incognito mode?如何以隐身模式管理存储在 cookie 中的 JWT 令牌?
【发布时间】:2021-01-18 19:08:32
【问题描述】:

我最近决定在 expressjs 中实现 JWT 身份验证并将其存储在 cookie 中。以前我只使用 localstorage 将 JWT 存储在前端(reactjs)中。但是现在我的新 cookie 存储方法遇到了一个问题——cookie 在浏览器的隐身模式下被禁用,我的应用程序在其中中断。我不是饼干方面的完整专家,所以也许我做错了什么。此外,API 托管在与前端不同的域上(第三方 cookie 是在隐身模式下禁用还是全部禁用)?所以我的问题是如何让它工作,目前当我查看 chrome 开发工具时,cookie 显然根本没有以隐身模式存储。有谁知道如何解决这个问题?

【问题讨论】:

  • “cookie 在隐身模式下被禁用”.. 我对此表示怀疑,因为如果是这种情况,所有 FB、youtube 和基本上所有东西都无法在隐身模式下工作。我相信除了浏览器问题之外还有其他一些问题
  • 托管在不同域 url 上的 API 会导致这种情况吗?也许只有第三方 cookie 在隐身模式下被禁用?

标签: node.js express cookies jwt incognito-mode


【解决方案1】:

我已经确认了这一点。默认情况下,浏览器在隐身模式下会阻止第三方 cookie。您需要将 API 放在同一个域中,这样它也可以在隐身模式下工作。

【讨论】:

  • 如果 front.website.com 使用 cookie 向 back.website.com 发出请求,他们会是第一方吗?或者,如果使用同一个域,但在两个不同的子域上,他们仍然是第三方吗?
  • 是的,第一方。主域需要相同。然后,即使您使用不同的子域,cookie 也不会被浏览器作为第三方阻止。我知道这一点,因为我最近实现了它并且它有效。
猜你喜欢
  • 2015-09-15
  • 2016-09-13
  • 2019-11-29
  • 1970-01-01
  • 2021-01-21
  • 2017-12-13
  • 2017-02-10
  • 2021-10-16
  • 2021-02-11
相关资源
最近更新 更多