我的应用程序的后端服务器通过REST API进行通信 用户身份验证通过JSON Web Token(JWT)处理 - 服务器签名的令牌包含用户名
让我们说用户创建了一个ID为5的预订,并具有删除它的权限。 他会通过发送DELETE请求来执行此操作:
api.address/reservations/5
这是一个有效的请求。但有些人可以尝试删除任何其他预留,只需发送一个DELETE请求,其中另一个id用有效令牌签名。
验证服务器端用户权限的最佳方法是什么?到目前为止,我带来了这三个解决方案,但其中任何一个都感觉不对
提前致谢!
答案 0 :(得分:1)
最简单的方法是将用户名或用户ID(来自令牌)与预留一起存储在例如creator
字段中。然后在DELETE方法中,检查执行请求的用户(再次来自令牌)是创建者。
如果是,请删除预订并返回204 No content
。如果没有,请返回403 Forbidden
。