RESTFul OAuth with FOSOAuthServer / FOSRest & FOSUser



我很难完全理解这里解释的客户端创建的概念。我按照帖子设置了OAuthBundle,并尝试进行必要的更改以符合FOSUser。虽然我不确定它是否完美。

我的情况

  • 我的网站是一个RESTFul API,只返回json或xml。我的前端将在AngularJS
  • 我结合了FOSUser、FOSRest和FOSOAuth,可能在配置中有错误

问题

我完成了将文章的第一部分设置为doctrine:schema:update命令。现在我应该创建一个客户端。

如何为不同角色的^/api部分设置安全性?

示例:

  • 匿名用户可以访问POST /api/users,但不能访问GET/api/users
  • 只有具有ROLE_ADMIN的用户才能访问DELETE /api/users/{id}

为了进行测试,我使用Postman(支持OAuth1&2以及其他身份验证方法)。

在security.yml中使用表达式

为了通过(请求)-方法AND[用户]-角色的条件组合来保护某些路由。。。

您可以在security.yml中使用表达式

有关详细信息,请参阅文档章节通过表达式进行安全保护

示例

只有角色为ROLE_ADMIN的用户才能使用DELETE请求访问/api/users/{id}

# app/config/security.yml
security:
    # ...
    access_control:
        - path: "^/api/users/d+$"
          allow_if: "'DELETE' == request.getMethod() and has_role('ROLE_ADMIN')"

Regex解释

  • ^
  • d+一个或多个数字(=用户id)
  • $字符串结束

相关内容

  • 没有找到相关文章