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

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

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

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

благодарю вас.

0

Решение

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

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

0

Другие решения

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

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

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

 $user = $this->tokenStorage->getToken()->getUser();
0

По вопросам рекламы [email protected]