我对JWT身份验证的工作方式感到有些困惑。一旦用户能够登录,我的快速服务器就会使用令牌进行响应,该令牌存储在客户端的本地存储中。对于每个请求,我发送该令牌。我的问题是,如何限制用户查看他/她的特定数据(例如,用户个人资料)?令牌是否能够单独确定哪个用户在服务器端请求用户数据,或者我是否必须与令牌一起发送用户名?这样安全吗?
答案 0 :(得分:1)
JWT令牌将包含3个部分,其中一个称为有效负载,您将在登录时使用它来存储用户的ID。当用户发送带有令牌的请求时,您将对其进行解码并从中获取ID有效负载然后通过查询到您的数据库,您可以获得用户的个人资料。
如何限制用户查看他/她的特定数据(例如,用户) 轮廓)?
如果您从令牌的有效负载中获取了id,那么您可以将其与用户想要查看的配置文件的ID进行比较,如果它们相同则表示他想要查看其配置文件。
令牌是否能够单独确定哪个用户正在请求用户 服务器端的数据或我是否必须发送用户名 用令牌?
不需要用户名,仅凭令牌就足够了,因为它可以识别用户。
这安全吗?
阅读本文:http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/当然还有其他意见,尝试实施最佳实践,我认为你会没事的。