Symfony 5为多用户类型生成身份验证



我正在做一个symfony 5项目。

我需要创建多用户类型:组织者和参与者…

我想为那些用户生成身份验证

我生成了一个用户:php bin/console make:user

然后:

/**
* @ORMEntity(repositoryClass=UserRepository::class)
* @ORMInheritanceType("JOINED")
* @ORMDiscriminatorColumn(name="type", type="string")
* @ORMDiscriminatorMap({
*     "organizer" = "Organizer",
*     "participant" = "Participant",
* })
*/
class User implements UserInterface

我创建了一个Organizer实体:class Organizer extends User

我添加了一个参与者实体:class Participant extends User

如果有人解释我如何使用php bin/console make:auth为组织者和参与者的用户生成身份验证,我将不胜感激

我曾经这样做过,我有两种用户类型,分别是author和admin。非常简短地说,管理员有他/她自己的仪表板,作者也有,有不同的实体。我使用make:entity使userauthor成为实体,并确保它们的内容相似(但您可以添加以满足您的应用程序需求(。在通过php bin/console make:user生成管理员用户后,我必须复制user templates, controller e.t.cphp文件的内容,并用其内容创建author templates, controller e.t.c,他们进行迁移/模式更新。这是手动的,我欢迎自动/脚本生成的解决方案。

管理实体

/**
* @ORMEntity(repositoryClass=UserRepository::class)
* @ORMTable(name="`user`")
* @UniqueEntity(fields={"email"}, message="There is already an account with this email")
* @ORMHasLifecycleCallbacks()
*/
class User implements UserInterface
{
/**
* @ORMId
* @ORMGeneratedValue
* @ORMColumn(type="integer")
*/
private int $id;
/**
* @ORMColumn(type="string", length=180, unique=true)
*/
private ?string $email;
}

作者实体

/**
* @ORMEntity(repositoryClass=AuthorsRepository::class)
* @ORMTable(name="authors")
* @UniqueEntity(fields={"email"}, message="There is already an Author account with this email")
* @ORMHasLifecycleCallbacks()
*/
class AllAuthors implements UserInterface
{
/**
* @ORMId
* @ORMGeneratedValue
* @ORMColumn(type="integer")
*/
private ?int $id;
/**
* @ORMColumn(type="string", length=255, unique=true)
*/
private ?string $email;
}

为此,您需要配置多个用户提供程序和多个保护身份验证程序(独立或共享入口点(。你可以在这里从symfony文档中了解这一点。

同时阅读这篇文章,它可能有助于Symfony 5中使用LDAP和DB 的多重身份验证

最新更新