我正在使用Symfony 4.4,并且需要一些有关设计决策的建议。
在我的应用程序中,用户可以通过登录表单登录。因此,我使用了Guard身份验证器和标准防火墙配置,该配置定义了我的应用程序的哪个区域需要对用户进行身份验证。到目前为止,一切都很好。
用户成功登录后,用户可以访问其用户个人资料,但不能访问“高级区域”。要访问“高级区域”,高级用户需要通过OAuth服务进行身份验证,以获取其用户个人资料的“高级标记”。如果这样的用户没有设置“高级标志”,我想将这些用户重定向到OAuth屏幕。
我的问题是:对于未设置“溢价标志”的已验证用户,限制访问“溢价区域”的最佳方法是什么?
我看到以下机会:
哪个是最好的方法?
[如果是1:我试图听“ security.authentication.success”和“ security.interactive_login”事件。两者似乎都不适合,因为唯一的一种方法是在登录后分派一次,但不适用于已通过身份验证的用户的任何进一步请求。
提前感谢!
检查此:https://symfony.com/doc/current/security.html
PT 4-角色您可以根据用户角色(高级/非高级)拒绝访问