我正在尝试使用 symfony2 和一种特殊的 url 进行自动登录。就像这里描述的一样。
但是当我使用 symfony2 调试工具栏时,我注意到它说:“未通过身份验证”。但我有一个会话,我有一个用户对象,一切似乎都很好。为什么调试工具栏会这样说?
zadbuchy 描述的方法有问题吗?我正在使用 symfony 2.1.6。
编辑:我知道这可能不是“最安全”的登录方式(感谢@Bart 的讨论),但我很好奇为什么 symfony2 不能正确识别登录。
我的代码如下所示:
$firewall = "support_secured_area";
$token = new UsernamePasswordToken($user, null, $firewall, $user->getRoles());
$this->get('security.context')->setToken($token);
$session = $this->get('session');
$session->set('_security_'.$firewall, serialize($token));
// Fire the login event (Suggestion from the answer, but unfortunately it doesn't work :( ).
$event = new InteractiveLoginEvent($this->getRequest(), $token);
$this->get("event_dispatcher")->dispatch("security.interactive_login", $event);