Symfony 2-以编程方式登录

Symfony 2-以编程方式登录,symfony,login,Symfony,Login,我有一个用户对象,我希望执行以下操作: Auth::login($user) or Auth::attempt($user->getEmail() 或 哪种方法更好?如何使用Symfony2登录 编辑-尚未工作 您要做的是以编程方式登录用户,操作如下: $token = new UsernamePasswordToken($user, null, "firewall_name", $user->getRoles()); $this->get("security.context

我有一个用户对象,我希望执行以下操作:

Auth::login($user) or Auth::attempt($user->getEmail()

哪种方法更好?如何使用Symfony2登录

编辑-尚未工作


您要做的是以编程方式登录用户,操作如下:

$token = new UsernamePasswordToken($user, null, "firewall_name", $user->getRoles());
$this->get("security.context")->setToken($token);
在本回答中,无法解释与Symfony安全系统相关的所有概念,因此请阅读Symfony手册或Symfony官方文档中的。

$user对象必须是通常从数据库获得的真实用户,并且必须实现用户界面。必须在app/config/security.yml文件中将firwall_name值更改为主防火墙的名称。$user->getRoles必须返回数组,即使用户至少应该返回数组“ROLE\u user”。
$token = new UsernamePasswordToken($user, null, "user_area", $user->getRoles());
$this->get("security.context")->setToken($token);

return $this->redirectToRoute('panel');
$token = new UsernamePasswordToken($user, null, "firewall_name", $user->getRoles());
$this->get("security.context")->setToken($token);