我很难完全理解客户端创建的概念here。 我按照帖子设置了OAuthBundle,并尝试进行必要的更改以符合FOSUser。虽然我不确定它是完美的。
我的情况
问题
我完成了文章的第一部分,直到doctrine:schema:update
命令。现在我应该创建一个客户端。
如何为不同的ROLES设置^/api
部分的安全性?
示例:
/api/users
但不能访问GET / api / users。ROLE_ADMIN
的用户才能访问DELETE /api/users/{id}
测试我正在使用Postman(支持OAuth1& 2,以及其他auth方法)。
答案 0 :(得分:3)
为了通过(请求)-method AND (用户)-role 的条件组合来保护某些路线...... < / p>
...您可以在security.yml
中使用 Expressions 。
更多信息可在文档章节 Securing by an Expression 中找到。
只允许具有角色ROLE_ADMIN
的用户使用/api/users/{id}
请求访问DELETE
:
# app/config/security.yml
security:
# ...
access_control:
- path: "^/api/users/\d+$"
allow_if: "'DELETE' == request.getMethod() and has_role('ROLE_ADMIN')"
正则表达式解释
^
以\d+
一个或多个数字(=用户ID)$
string end