用户无法在Symfony2中正确注销

时间:2017-08-29 10:56:16

标签: php symfony

我正在尝试在单击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

1 个答案:

答案 0 :(得分:0)

删除logoutAction并检查它是否有效。这个动作由Symfony本身提供。您应该只在security.yml中设置注销路径。