我正在使用Symfony 3.4和LexikJWTAuthenticationBundle 2.4。您知道如何检索正在访问API端点的用户吗?
通常情况下,我会拨打$user = $this->get('security.token_storage')->getToken()->getUser();
,但在这种情况下似乎不起作用。
答案 0 :(得分:1)
为您提供建议,请使用控制器中的容器键。
当然,最好在这里发送您的错误!
Symfony 4
protected function getCurrentUser()
{
if (!$this->container->has('security.token_storage')) {
throw new \LogicException('The Security Bundle is not registered in your application.');
}
if (null === $token = $this->container->get('security.token_storage')->getToken()) {
return;
}
if (!is_object($user = $token->getUser())) {
// e.g. anonymous authentication
return;
}
return $user;
}
答案 1 :(得分:-1)
我遇到了同样的问题,您可以使用以下方式获取当前用户的ID:
$current_user = $this->getUser();
$id = $current_user->getId();
在你的控制器内。