【问题标题】:Best Practice handling user data with JWT使用 JWT 处理用户数据的最佳实践
【发布时间】:2016-10-23 00:14:03
【问题描述】:

我正在通过 Json Web 令牌 (JWT) 实现无状态 REST API。目前,我想知道将用户数据传递到前端的最佳方法是什么。这些是我需要在前端访问的字段username, email, role, full_name, description, profile_img, facebook_id, twitter_id, custom_setting_1, custom_setting_2, custom_setting_3, custom_setting_4

我看到了 2 个选项:

  1. 在 JWT 创建期间,将用户数据添加到 JWT 有效负载。然后在前端解码。虽然我担心如果我添加所有数据,有效负载会变得非常大。
  2. 我只能将 username, role 等不可更改的字段添加到 JWT。在创建 JWT 并返回到前端之后,我从 API 发送另一个用户数据请求。

我也可能在这里遗漏了一些东西。所以想知道使用 JWT 处理用户数据的最佳方法是什么。

【问题讨论】:

  • 我想弄清楚为什么你需要 JWT。一个普通的 JSON 还不够?
  • JWT 将用于验证 API 调用。所以问题真的是,我应该在 JWT 中添加用户数据(有什么优点/缺点),还是保留额外的 API 请求来获取用户数据。
  • 如果我的回答对你有用,请告诉我。

标签: api rest jwt json-web-token


【解决方案1】:

一旦您使用 JWT 进行身份验证(我知道您的服务器正在生成一个身份验证令牌,客户端需要在每个请求中将其发送到服务器),在令牌中包含所有这些详细信息是没有意义的。

您的第二种方法更有意义:

我只能将 usernamerole 等不可更改的字段添加到 JWT。在创建 JWT 并返回到前端后,我从 API 发送另一个用户数据请求。

保持 JWT 精简并执行另一个请求以获取用户详细信息。

有关如何设计 URL 以返回经过身份验证的用户详细信息的更多信息,请查看以下内容:

【讨论】:

  • 在我的情况下,生成令牌的服务器和接收令牌的服务器是两个不同的实体,并且位于不同的地理区域,那么我应该如何在令牌中添加数据?
猜你喜欢
  • 2016-03-27
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
  • 1970-01-01
相关资源
最近更新 更多