我正在使用FOS用户套装。 现在我为我的用户创建了一个包含邮件的表,他们可以根据需要添加尽可能多的邮件。现在我正在考虑让他们登录此表中保存的所有邮件。有关最佳方法的提示吗?我应该只更改FOS中的某些内容还是只创建自己的登录表单?
密码当然与用户保持一致。因此,我必须以某种方式检查电子邮件是否是我的邮件表,当发现时我必须使用来自用户表的密码检查匹配密码(每封邮件与用户相关,当然是Id)。
答案 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)
{
}
}