私はモーダルログインをしようとしています。ユーザが正しいメールアドレス&を入力した後、ログオンしたユーザのIDを取得する必要があります(モーダルはまだ開いています。ページ)。データベースのユーザーテーブルのID。symfony3認証後にセキュリティトークンを取得
通常、私は次の行でIDを取得:モーダル状況で
$this->get('security.token_storage')->getToken()->getUser()->getId();
、私はLoginControllerにフォームを送信し、私が持っているコントローラ内部午前:
/** @var AuthenticationUtils $authenticationUtils */
$authenticationUtils = $this->get('security.authentication_utils');
$error = $authenticationUtils->getLastAuthenticationError();
もしI悪い資格情報を入力すると正常に動作します:不正な資格情報 正しい資格情報を入力してvar_dump($ error)を実行すると、NULLが返されます。
私が行う場合 $ error = $ authenticationUtils-> getLastAuthenticationError() - > getToken();
nullオブジェクトにgetTokenを適用しようとしているとエラーが表示されます。
私はこれをしようとした場合
:/** @var Accounts $account */
$account = $this->get('security.token_storage')->getToken()->getUser();
var_dump($account);
は、私は同じエラーを取得します。 ページを更新すると、私はログインしています。
私のスコープは、$ accountオブジェクトを取得することです。
ページを更新せずにユーザー(エンティティ)を取得するにはどうすればよいですか?同じコントローラで、$ authenticationUtils-> getLastAuthenticationError()の直後ですか?
おかげで、
手動でユーザー認証を行っていますか?またはあなたは標準の 'check_path'ルートを使用しましたか? – yceruto
私は両方を試しましたが、check_pathのルートでのみ、symfonyが正しく自動作成を行いました。他のパスはセキュリティトークンを生成しません – TeoM