【问题标题】:Restrict CRUD in REST API to owner将 REST API 中的 CRUD 限制为所有者
【发布时间】:2015-05-26 09:15:21
【问题描述】:

我的 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 api rest laravel


    【解决方案1】:

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

    由于您的问题被标记为 PHP 和 Laravel,因此在 Google 上快速搜索 laravel 授权会得到如下结果:

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

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

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

    【讨论】:

      【解决方案2】:

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

      通常以X 开头的标头 - 将它们丢弃以免被其他方解析。以X-Your-Secret 为例。

      【讨论】:

        猜你喜欢
        • 2015-05-29
        • 2022-06-17
        • 2016-06-05
        • 1970-01-01
        • 2014-08-23
        • 2019-02-15
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        相关资源
        最近更新 更多