3

我正在使用 Symfony 3.4 和 LexikJWTAuthenticationBundle 2.4。您知道如何检索正在访问 API 端点的用户吗?

通常,我会打电话$user = $this->get('security.token_storage')->getToken()->getUser();,但在这种情况下似乎不起作用。

4

2 回答 2

3

给你的建议,在控制器中使用容器键。

当然,最好在这里发送您的错误!

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;
    }
于 2019-01-06T05:09:45.553 回答
-2

我遇到了同样的问题,您可以使用以下方法获取当前用户的 ID:

$current_user = $this->getUser();

$id = $current_user->getId();

在你的控制器里面。

于 2018-01-08T11:50:57.570 回答