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();