【问题标题】:Token vs Cookie for SPASPA 的令牌与 Cookie
【发布时间】:2018-05-27 11:48:01
【问题描述】:

我将devise_token_auth 用于rails 应用程序,其中react 在前端,rails 作为后端作为后端。

作者在自述文件中指出

如果您正在构建 SPA 或移动应用,并且需要身份验证, 你需要的是令牌,而不是 cookie。`

为什么?我了解令牌和 cookie 之间的基本区别,但不明白为什么您不能只使用 cookie(只需在任何 XHR 请求中包含标头)?

【问题讨论】:

  • @DaryllSantos 我之前已经阅读过这个问题,但我仍然不明白你为什么需要令牌。也许这只是该存储库中的一个糟糕的措辞,而您没有。
  • 在阅读链接的文章并经过一番思考后,我想没有真正的需要。他们做同样的事情,特别是如果你用标题钩住cookie。我想当 API(移动应用程序)有潜在的非基于 Web 的消费者时,使用令牌一直是一种惯例。我很可能是错的,任何人都可以随时纠正我,但这是我的 2c。

标签: ruby-on-rails web cookies devise token


【解决方案1】:

有几个主要原因。

首先,大多数 SPA 设计为无状态的,使用基于 cookie 的身份验证不是无状态的。使用 cookie 还会使每个请求花费更长的时间,因为每个请求都会进行查找。

Cookie 也与域相关联。大多数 SPA 使用跨多个域的多种服务,这与基于 cookie 的身份验证相去甚远。这也适用于具有 Web 应用程序和移动应用程序的 SPA,使用基于令牌的身份验证意味着更容易扩展。

令牌也可以用来存储数据,只需要生成一次,之后除了服务器读取令牌外,不涉及任何工作。这意味着您可以在其中存储用户权限等,服务器只需很少的工作即可获取此信息。

【讨论】:

  • 令牌!= JWT。令牌不需要存储状态(在这种情况下使用 devise_token_auth)。
猜你喜欢
  • 2015-10-29
  • 2018-10-20
  • 2015-08-17
  • 1970-01-01
  • 2017-01-15
  • 2016-10-12
  • 2023-01-24
  • 1970-01-01
相关资源
最近更新 更多