Q:最佳做法是限制经过身份验证的用户访问应用程序区域?

问题描述 投票:0回答:1

我正在使用Symfony 4.4,并且需要一些有关设计决策的建议。

在我的应用程序中,用户可以通过登录表单登录。因此,我使用了Guard身份验证器和标准防火墙配置,该配置定义了我的应用程序的哪个区域需要对用户进行身份验证。到目前为止,一切都很好。

用户成功登录后,用户可以访问其用户个人资料,但不能访问“高级区域”。要访问“高级区域”,高级用户需要通过OAuth服务进行身份验证,以获取其用户个人资料的“高级标记”。如果这样的用户没有设置“高级标志”,我想将这些用户重定向到OAuth屏幕。

我的问题是:对于未设置“溢价标志”的已验证用户,限制访问“溢价区域”的最佳方法是什么?

我看到以下机会:

  1. 创建一个订户或侦听器,它会检查每个请求,以确认用户是否已通过身份验证并设置了“高级标志”。
  2. 创建一个新的用户角色和另一个防火墙配置以访问“高级区域”
  3. ???

哪个是最好的方法?

[如果是1:我试图听“ security.authentication.success”和“ security.interactive_login”事件。两者似乎都不适合,因为唯一的一种方法是在登录后分派一次,但不适用于已通过身份验证的用户的任何进一步请求。

提前感谢!

symfony authentication authorization symfony4 symfony-4.4
1个回答
0
投票

检查此:https://symfony.com/doc/current/security.html

PT 4-角色您可以根据用户角色(高级/非高级)拒绝访问

© www.soinside.com 2019 - 2024. All rights reserved.