我有两个用户角色,我希望他们用一个/相同的登录表单访问后端。(security.yaml:chain_providers ?)
只使用一个实体即可登录(security.yaml:entity )
为了避免管理员和用户使用相同的电子邮件的问题,我会添加一个角色选择字段(这是最大的问题,如何使用symfony,CustomFormType ?)
实体:AdminEntity UserEntity
角色:ROLE_ADMIN ROLE_USER
后端:/backend后端登录:/backend/login
发布于 2022-05-26 12:25:57
我不确定我是否完全理解你的问题,但我认为你需要一个不同的方法为你的项目。
实际上,在UserEntity中,我建议扩展UserInterface和PasswordAuthenticatedUserInterface。
class User implements UserInterface, PasswordAuthenticatedUserInterface# UserInterface.php
interface UserInterface
{
public function getRoles(): array;正如您可能看到的,角色是一个字符串数组,您可以使用值ROLE_ADMIN和ROLE_USER填充这些字符串。
有了这些信息,您可以通过多种方式分离功能。
Admin,并显示每个功能的管理操作。这意味着您将有代码检查角色,并根据用户的角色决定显示或执行什么,从而允许更大的灵活性,因为您可以及时添加更多的角色。这也意味着您必须以一种聪明的方式规划角色能够或不能完成的任务。
admins
users和users建立不同的防火墙- `Admin` ^/backend/admin
- `Users` ^/backend因此,您可能有不同的登录路径,但这并不意味着您需要重复代码。这意味着您必须检查这个用户目前在哪里。属性路由可以接受路径的字符串或数组。
Admin ^/backend/admin/loginUsers ^/backend/login所以,我不在乎您选择的方法,主要目标总是永远不重复代码或逻辑。
我希望这能帮到你
https://stackoverflow.com/questions/72042605
复制相似问题