我的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,因此Google对laravel授权的快速搜索会产生以下结果:
https://github.com/machuga/authority-l4
要么
http://laravel.io/forum/02-03-2014-authority-controller-authorization-library-cancan-port
这应该是一个很好的起点.