まったくログインしていないときに、次のコードを使用してユーザーとしてログインしています。
$token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles());
$this->get('security.context')->setToken($token);
$event = new InteractiveLoginEvent($this->getRequest(), $token);
$this->get("event_dispatcher")->dispatch("security.interactive_login", $event);
try
{
$request = $this->container->get('request')->getSession()->set('_security_' . "main", serialize($token));
}
catch(InactiveScopeException $e)
{
die($e->getMessage());
}
return new RedirectResponse($this->container->get('router')->generate('fos_user_profile_show'));
ログインしたら、同じコードをもう一度使用して、別のユーザーとして再ログインします。すでにログインしている場合、この同じコードのみが失敗します。
したがって、私が匿名の場合は機能しますが、認証されると失敗します。
すでにログインしていて、別のユーザーとしてログインしたい場合でもこれが機能するように、何か特別なことをする必要がありますか?