我正在尝试以编程方式从侦听器内部注销当前用户。我在这里读到
$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();
做的伎俩,但后来我不能再打电话$this->container->get('security.context')->getToken()->getUser();
了,因为令牌现在是NULL
。
如何注销用户但仍让应用程序正常运行?我在我的控制器函数中调用了 getUser(),所以我应该将令牌设置回与未经身份验证的用户相对应的东西。我怎样才能做到这一点?
此外,如果有一种方法可以以编程方式启动一个新会话并设置一个 Flash 消息以通知用户他已注销,那将是非常棒的。