[英]Symfony5 How to create multiple types of users with different login forms
I started learning Symfony and already know how to create a user and registration / login forms for him using php bin/console make:user
php bin/console make:auth
, but I need to have several types of users like Client
, Company
, Admin
如果我尝试 go 到example.com/company
怎么办,我们被扔到公司帐户的登录 window (我现在被扔到用户的登录表单)。
After searching I found these questions Symfony / Doctrine - Multiple Users Types and Symfony: Firewalls, multiple login forms , but I did not understand what to do next and how to combine them. 请告诉我。
我认为对你来说更好的解决方案是使用角色来确定它们;)
您可以拥有一个实体并制作一些吸气剂,例如:
public function isAdmin():bool
{
return in_array(self::ROLE_ADMIN, $this->roles, true);
}
如果您想将角色拆分到不同的路径前缀,您可以拥有一个防火墙,例如:匹配您所有应用程序的应用程序,然后制定正确的 access_controll 规则,如下所示:
access_control:
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/company, roles: ROLE_CLIENT }
你确定公司是另一个用户 class 还是许可? 也许更好地将管理员分配给公司并允许他们访问这些公司? ;)
如果你真的想拆分它们,你可以使用 doctrine 鉴别器,例如。 创建抽象用户和扩展它们的下 3 个类,您可以使用该抽象 class 配置安全性。
或者像上面一样创建 3 个提供者、3 个防火墙和相同的 access_controll
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.