我試圖做一個模態登錄,並在用戶輸入正確的電子郵件&密碼後,我需要獲取登錄用戶的ID(而模式仍然打開,而不刷新頁)。來自數據庫的users表中的id。Symfony3認證後獲得安全令牌
通常情況下,我得到以下行ID:
$this->get('security.token_storage')->getToken()->getUser()->getId();
在模式的情況下,我送形式的LoginController和控制器中我有:
/** @var AuthenticationUtils $authenticationUtils */
$authenticationUtils = $this->get('security.authentication_utils');
$error = $authenticationUtils->getLastAuthenticationError();
如果我輸入錯誤的憑據,它工作正常,顯示:錯誤的憑據 如果我輸入正確的憑據,我做var_dump($錯誤)我得到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