将REST API中的CRUD限制为所有者


Restrict CRUD in REST API to owner

我的api定义了以下路由:

GET test.com/api/v1/users
POST test.com/api/v1/users
PUT test.com/api/v1/users/{id}
GET test.com/api/v1/users/{id}
DELETE test.com/api/v1/users/{id}

此外,我使用OAuth2密码身份验证,因此这些资源只有在经过身份验证后才可用。

我的观点是…保持RESTFULL API原则,我应该如何将PUT和DELETE方法限制到实际的资源所有者?

基本上,我不希望除了所有者之外的任何人能够编辑他的信息。

您已经实现了系统的身份验证部分,这意味着您的应用程序知道用户是谁。现在,您需要设计一个授权子系统,这意味着您的用户可以访问什么

由于您的问题被标记为PHP和Laravel,在谷歌上快速搜索Laravel授权会得到以下结果:

https://github.com/machuga/authority-l4

http://laravel.io/forum/02-03-2014-authority-controller-authorization-library-cancan-port

这应该是一个很好的起点。

这通常通过附加一个自定义标头和一条秘密消息来解决,该消息将请求标识为valid。恐怕我没有任何消息来源。

通常以X开头的头文件-将其丢弃,以免其他方解析。例如CCD_ 3。