【问题标题】:What does `client` header value represents in devise_token_auth`client` 标头值在 devise_token_auth 中代表什么
【发布时间】:2018-05-24 01:14:09
【问题描述】:

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

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

  1. 用户将 uid(id) 和 password 发布到 api 服务器。
  2. Api 服务器验证 uidpassword
  3. 如果uidpassword 匹配,则颁发令牌并返回它。
  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 值中吗?

【问题讨论】:

    标签: ruby-on-rails devise devise-token-auth


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多