所以我构建了一个 RESTful API。它有一个/account/{id}返回用户数据的端点。API 通过身份服务器进行保护,该服务器向请求者颁发可访问端点的 JSON Web 令牌 (JWT) /account/{id}。用户发送包含用户名和密码的请求,并在身份验证成功后收到 JWT 作为回报。现在,用户向 发送请求以获取其帐户信息/account/{id}。该请求在标头中带有令牌,并返回 200 响应,负载中包含用户数据。
如何在端点中授权 {id}?换句话说,经过身份验证的用户只需在端点中添加任何 {id} 即可接收其他用户的数据。如何使用 JWT 来防止这种情况发生?
您可以将数据存储在网络令牌中。如果您存储用户的 ID,那么您可以针对他们提出的每个请求来识别他们。这是安全的,因为令牌的内容是用服务器的私钥签名的。因此它们的内容无法更改。
之后,您可以限制 API,以便每个用户只能查询自己的记录,也可以实现一个复杂的角色系统,其中每个用户都有一组角色(例如read-only、guest、maintainer、admin、client等),定义哪些角色端点以及它们如何使用。
| 归档时间: |
|
| 查看次数: |
982 次 |
| 最近记录: |