FOS用户包,登录许多邮件

时间:2013-12-18 11:40:54

标签: symfony authorization fosuserbundle

我正在使用FOS用户套装。 现在我为我的用户创建了一个包含邮件的表,他们可以根据需要添加尽可能多的邮件。现在我正在考虑让他们登录此表中保存的所有邮件。有关最佳方法的提示吗?我应该只更改FOS中的某些内容还是只创建自己的登录表单?

密码当然与用户保持一致。因此,我必须以某种方式检查电子邮件是否是我的邮件表,当发现时我必须使用来自用户表的密码检查匹配密码(每封邮件与用户相关,当然是Id)。

1 个答案:

答案 0 :(得分:1)

不,只能使用一封电子邮件登录。但是,您可以提供一种方法让用户选择他想要登录的电子邮件。

另一种选择当然是覆盖symfony2s安全组件的登录侦听器。例如。 https://gist.github.com/smottt/1075753

class LoginListener
{
    /** @var \Symfony\Component\Security\Core\SecurityContext */
    private $securityContext;

    /** @var \Doctrine\ORM\EntityManager */
    private $em;

    /**
     * Constructor
     * 
     * @param SecurityContext $securityContext
     * @param Doctrine        $doctrine
     */
    public function __construct(SecurityContext $securityContext, Doctrine $doctrine)
    {
        $this->securityContext = $securityContext;
        $this->em              = $doctrine->getEntityManager();
    }

    /**
     * Do the magic.
     * 
     * @param InteractiveLoginEvent $event
     */
    public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
    {

    }
}