Получить данные пользователя из токена - PullRequest
0 голосов
/ 10 мая 2018

Я создаю API с использованием symfony и Graphql (youshido / graphql-bundle), я хочу получить пользователя из токена внутри API. Я должен передать имя пользователя в качестве параметра в запросе, или я могу получить пользователя из токена для всего запроса?

какое лучшее решение? и как я могу получить токен на функцию разрешения?

public function resolve($value, array $args, ResolveInfo $info)
{
    return $this->container->get('resolver.user')->save($args);
}

спасибо.

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

решение состоит в том, чтобы ввести TokenStorage в конструктор, а затем получить от него пользователя

public function __construct(TokenStorage $tokenStorage)
{
    $this->tokenStorage = $tokenStorage;
}

чтобы получить пользователя из токена:

 $user = $this->tokenStorage->getToken()->getUser();
0 голосов
/ 11 мая 2018

Если вы разрабатываете API, вы должны аутентифицировать пользователя в каждом запросе, используя токен на предъявителя.Apis не имеет состояния: они не хранят информацию о cookie в вашем браузере (вы можете, но это бессмысленно).Вместо этого вы передаете токен в заголовке авторизации каждого запроса, и это ваш способ аутентификации.

Вы можете использовать проверенный lexik / jwt-authentication-bundle для реализации системы аутентификации веб-токена json.Но сначала убедитесь, что вы понимаете, что такое JWT и как их правильно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...