我正在devise_token_auth
使用前端为rails
的{{1}}应用,react
后端充当后端。
在自述文件中,作者说明了
如果您正在构建SPA或移动应用,并且您想要身份验证, 你需要代币,而不是饼干。
为什么呢?我理解令牌和cookie之间的基本区别,但不明白为什么你不能只使用cookie(只包括任何XHR请求的头文件)?
答案 0 :(得分:2)
有几个主要原因。
首先,大多数SPA都设计为无状态,使用基于cookie的身份验证不是无状态的。使用cookie还会使每个请求花费更长的时间,因为每个请求都有查找。
Cookie也与域绑定。大多数SPA使用跨多个域的多个服务,这与基于cookie的身份验证无关。这也适用于具有网络应用程序和移动应用程序的SPA,使用基于令牌的身份验证意味着扩展这一过程要容易得多。
令牌也可以用来存储数据,只需要生成一次,之后除了服务器读取令牌外没有涉及的工作。这意味着您可以在那里存储用户权限,服务器只需很少的工作就可以获得这些信息。