以编程方式注销当前用户

时间:2012-11-28 07:51:30

标签: session symfony fosuserbundle symfony-2.0

我正在尝试以编程方式从侦听器中注销当前用户。 我读了here那个

$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();

诀窍然后我不能再调用$this->container->get('security.context')->getToken()->getUser();因为令牌现在是NULL

如何注销用户但仍然让应用程序正常运行? 我在我的控制器函数中调用了getUser(),因此我应该将令牌设置为与未经过身份验证的用户相对应的内容。我怎么能这样做?

此外,如果有一种方法可以以编程方式启动一个新会话并设置一条flash消息来通知用户他已经注销,那就太棒了。

1 个答案:

答案 0 :(得分:1)

尝试

$anonToken = new AnonymousToken('theTokensKey', 'anon.', array());
$this->get('security.context')->setToken($anonToken);

第一个参数是令牌的密钥(即'50cdf89882454')