2

リスナー内から現在のユーザーをプログラムでログアウトしようとしています。私はここでそれを読みました

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

トリック$this->container->get('security.context')->getToken()->getUser();を行いますが、トークンが now であるため、もう呼び出すことはできませんNULL

ユーザーをログアウトしても、アプリケーションを正常に実行するにはどうすればよいですか? コントローラー関数で getUser() を呼び出しているため、トークンを認証されていないユーザーに対応するものに戻す必要があります。これどうやってするの?

また、プログラムで新しいセッションを開始し、ユーザーがログアウトしたことを通知するフラッシュ メッセージを設定する方法があれば、それは素晴らしいことです。

4

1 に答える 1

1

試す

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

最初のパラメーターはトークンのキーです (つまり、'50cdf89882454')

于 2012-12-16T22:05:05.110 に答える