在 cookie 中存储访问和刷新 JWT 令牌有多正确?

问题描述 投票:0回答:1
  • 从这种方法的优点中,我可以注意到您不必手动设置授权标头,因为浏览器本身会在请求中附加一个带有令牌的 cookie。

  • 处理访问令牌的过期也会更容易,因为每次请求时,两个令牌(访问和刷新)都会发送到服务器,如果过期,您可以快速更新令牌。

这种方法有哪些我没有注意到的缺点?

authentication cookies jwt access-token refresh-token
1个回答
0
投票

如果您可以使用基于 cookie 的会话,请坚持使用。如果您使用仅 HTTP、同一站点的安全 cookie,那么您的解决方案将比基于令牌的解决方案更安全(您将免受 XSS 攻击)。如果你可以使用 cookie,甚至不用访问和刷新令牌,只需使用会话即可。

就是说,在某些情况下,您无法控制所调用的 API。这些 API 通常是第三方 API,需要访问令牌才能调用它们。在这些情况下,您无法将令牌保存在 cookie 中,因为您无法控制来自 API 域的 cookie。

如果您仍想将令牌保留在 cookie 中,即使这些令牌不是您的令牌,那么您将不得不引入一些中间件,这些中间件将负责从 cookie 中提取令牌并直接使用令牌向 API 发出请求。这给您的解决方案增加了一些复杂性,因为您需要一些额外的软件,但它使令牌远离浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.