我正在使用 Symfony 3.4 和 LexikJWTAuthenticationBundle 2.4。您知道如何检索正在访问 API 端点的用户吗?
通常,我会打电话$user = $this->get('security.token_storage')->getToken()->getUser();
,但在这种情况下似乎不起作用。
我正在使用 Symfony 3.4 和 LexikJWTAuthenticationBundle 2.4。您知道如何检索正在访问 API 端点的用户吗?
通常,我会打电话$user = $this->get('security.token_storage')->getToken()->getUser();
,但在这种情况下似乎不起作用。
给你的建议,在控制器中使用容器键。
当然,最好在这里发送您的错误!
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;
}
我遇到了同样的问题,您可以使用以下方法获取当前用户的 ID:
$current_user = $this->getUser();
$id = $current_user->getId();
在你的控制器里面。