0

我已经与 Symfony2 合作了几个星期,并且喜欢它。

但是,我对一个方面有点困惑。假设我有两个包,每个包都有一个“用户”实体,用于存储有关该用户的信息。

但是,我希望能够使用站点管理员选择的任何身份验证进行实际身份验证(即使它不是我的捆绑包中的用户实体之一)。

组织这些实体并将它们全部链接起来的最佳实践是什么,同时在实际身份验证中保持灵活性。

谢谢。


更新:这是一个澄清。

想象一下,我有两个捆绑包:论坛和维基。

现在,对于用户来说,这两个系统想要存储很多不同的数据。所以,每个人都会有一些地方来存储它们(比如两个不同的表)。但是,它们都不存储认证信息,只存储其他信息。

这个想法是,无论使用哪种身份验证方法,他们都能够获得该令牌,然后确定他们应该在自己的包中使用哪些用户数据。这样,捆绑包将能够独立于彼此以及独立于身份验证方法工作。

4

1 回答 1

0

我认为您想避免拥有多个用户实体。要快速将一些最佳实践集成到您的应用程序中,请查看FOSUserBundle。这将为您提供允许用户注册、登录等所需的大约 80% 的功能。在扩展 FOSUserBundle 的应用程序中创建您自己的 UserBundle。例如,您的 User 实体可能如下所示:

use FOS\UserBundle\Entity\User as BaseUser;

/**
 * Extend the FOSUserBundle base User class.
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser {
    ...
}

将此扩展的用户实体 ( YourApp\UserBundle\Entity\User) 引用为项目中所有其他捆绑包中的规范用户实体。

于 2012-06-13T13:49:07.303 回答