我试图做一个模态登录,并在用户输入正确的电子邮件&密码后,我需要获取登录用户的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