我对 Symfony 2.0.x 的 FOSUserBundle 有疑问。在那里的文档中,您可以找到一种方法来更改登录以使用用户名和电子邮件。效果很好!但我想登录以仅使用电子邮件。因此,我在我的 CustomUserManager 中添加了一个功能(从原始版本扩展),以确保您可以使用您的电子邮件登录。
namespace Frontend\UserBundle\Model;
use FOS\UserBundle\Entity\UserManager;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
class CustomUserManager extends UserManager
{
public function loadUserByUsername($email)
{
/*$user = $this->findUserByUsernameOrEmail($username);
if (!$user) {
throw new UsernameNotFoundException(sprintf('No user with name "%s" was found.', $username));
}
return $user;*/
//Change it to only email (Default calls loadUserByUsername -> we send it to our own loadUserByEmail)
return $this->loadUserByEmail($email);
}
public function loadUserByEmail($email)
{
$user = $this->findUserByEmail($email);
if (!$user) {
throw new UsernameNotFoundException(sprintf('No user with email "%s" was found.', $email));
}
return $user;
}
}
但是现在我有一个问题,我需要控制保存在会话中的值。他将我的用户名保存在会话中,当系统检查时,将没有可用的电子邮件(因为他只检查电子邮件)。
所以我的问题是如何/在哪里可以更改存储在用户名变量中的值。
谢谢!