symfony2と特別な種類のURLで自動ログインを行おうとしています。ここで説明したように。
しかし、symfony2デバッグツールバーを使用すると、「認証されていません」と表示されていることに気付きます。しかし、セッションがあり、ユーザーオブジェクトがあり、すべて正常に機能しているようです。デバッグツールバーがこれを言っているのはなぜですか?
そして、zadbuchyが説明している方法に何か問題がありますか?symfony2.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);