1

我正在尝试使用 devise_token_auth ( https://github.com/lynndylanhurley/devise_token_auth#conceptual ) 在 Rails 中实现基于令牌的授权。

当我发布uidpassword反对方法时,它会在标题中sign_in返回access-token, client(和它本身)。uid我了解基于令牌的授权是这样工作的:

  1. 用户发布uid(id) 和passwordapi 服务器。
  2. Api 服务器验证uidpassword
  3. uid如果和password匹配,则发出 Token 并返回它。
  4. 客户端收到令牌。
  5. 客户端每当客户端想要访问身份验证所需的 api 时,客户端使用uid和 Token 来证明该客户端实际上已经通过身份验证。

我可以理解,access-token对应于上面解释中描述的 Token。这让我想到了client标头值是什么,因为根据官方 Wiki(https://github.com/lynndylanhurley/devise_token_auth#usage-tldr),devise_auth_token 库似乎不仅使用需要access-token,而且还使用client值.

问题:

  • 在 devise_token_auth 中,client标头值的用途是什么?为什么还需要它来识别用户?那不能包含在(或连接到)access-token价值中吗?
4

1 回答 1

1

为每个访问 API的client不同设备生成标头。其目的是为特定用户(Web 客户端、移动客户端等)维护多个活动会话。

您可以通过在 2 个单独的 Web 客户端上使用同一用户登录并检查user.tokens,每个客户端应该有一组令牌来测试这一点。

于 2018-05-25T15:21:30.843 回答