我想用 FOSUserBundle 保护我的 API(并避免使用 FOSOAuthServerBundle,因为缺少完整示例的文档)。
为了使我的 API 安全,我刚刚创建了防火墙,如下所示:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
api_doc:
pattern: ^/api/doc
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }
- { path: ^/admin/, roles: [ROLE_SUPER_ADMIN]}
这很棒!但这要求每个人在使用网站之前都必须连接,以便我可以显示广告列表等。(出于安全目的,即使是 GET 查询也需要连接)
为了克服,我正在考虑让所有用户都与具有有限权限的“默认”用户连接(对于简单查询而无需发布就足够了)。
有可能这样做吗?
谢谢你的帮助。
PS:我确实设法让 FOSUserBundle 和 FOSOAuthServerBundle 一起工作。事实上,我能够创建一个客户端并通过命令行为其获取访问令牌。但是,我无法security.yml正确配置,以便获得一个返回访问令牌的登录页面。