2

我正在尝试以编程方式从侦听器内部注销当前用户。我在这里读到

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

做的伎俩,但后来我不能再打电话$this->container->get('security.context')->getToken()->getUser();了,因为令牌现在是NULL

如何注销用户但仍让应用程序正常运行?我在我的控制器函数中调用了 getUser(),所以我应该将令牌设置回与未经身份验证的用户相对应的东西。我怎样才能做到这一点?

此外,如果有一种方法可以以编程方式启动一个新会话并设置一个 Flash 消息以通知用户他已注销,那将是非常棒的。

4

1 回答 1

1

尝试

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

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

于 2012-12-16T22:05:05.110 回答