FOSOAuthServerBundle - Как получить пользователя в контроллере

Я реализовал FOSOAuthServerBundle в своем приложении, чтобы предоставить API для мобильного приложения. Кажется, работает, пользователь получает Token а также RefreshToken но если я сделаю контроллер требует пользовательский объект, который всегда возвращает null, Также не удается контролировать разрешение, которое является только IS_AUTHENTICATED_ANONIMOUSLY,

пример:

public function showUserAction(){
   $user = $this->getUser()
   //$user = null

   $auth = $this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY')
   //$auth = false
}

Как получить пользовательский объект в контроллере с таким типом аутентификации?

2 ответа

Решение

На основании вашего комментария вы создали клиента с различными типами grant_types.

ПРИМЕЧАНИЕ. Если вы используете grant_type= client_credentials во время аутентификации, пользователь не будет доступен, поскольку вы не укажете точного пользователя / пароль для создания токена. В случае grant_type= password вы передаете имя пользователя и пароль, и в этом случае токен связывается с пользователем. Надеюсь, это имеет смысл.

Попробуй это:

$user = $this->get('security.token_storage')->getToken()->getUser();
Другие вопросы по тегам