我正在尝试以编程方式从侦听器中注销当前用户。 我读了here那个
$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();
诀窍然后我不能再调用$this->container->get('security.context')->getToken()->getUser();
因为令牌现在是NULL
。
如何注销用户但仍然让应用程序正常运行? 我在我的控制器函数中调用了getUser(),因此我应该将令牌设置为与未经过身份验证的用户相对应的内容。我怎么能这样做?
此外,如果有一种方法可以以编程方式启动一个新会话并设置一条flash消息来通知用户他已经注销,那就太棒了。
答案 0 :(得分:1)
尝试
$anonToken = new AnonymousToken('theTokensKey', 'anon.', array());
$this->get('security.context')->setToken($anonToken);
第一个参数是令牌的密钥(即'50cdf89882454')