我正在尝试在单击Logout链接时注销用户(会话)。当我按下Logout时它似乎工作,但如果我改变路径,用户仍然活着,我不知道为什么。
这是我的Controller
:
/**
* @Route("/logout", name="logout")
*/
public function logoutAction(Request $request)
{
$helper = $this->get('security.authentication_utils');
$this->container->get('security.token_storage')->setToken(null);
$this->get('session')->set('id', null);
$request->getSession()->invalidate();
$this->get('security.token_storage')->setToken(null);
return $this->render(
'login.html.twig',
array(
'last_username' => null,
'error' => null,
)
);
}
这是我的security.yml:
security:
# ...
main:
anonymous: ~
guard:
authenticators:
- app.form_login_authenticator
logout:
path: logout
target: logout
invalidate_session: true
这是routing.yml:
app:
resource: '@AppBundle/Controller/'
logout:
path: /logout
答案 0 :(得分:0)
删除logoutAction
并检查它是否有效。这个动作由Symfony本身提供。您应该只在security.yml
中设置注销路径。