2015-08-20 2 views
1

Я установил OAuth [используя FOSOauthServerBudle]. Я работаю над настройкой потока паролей.Как установить провайдера на токен oauth

Я могу получить токен доступа с типом клиента, но используя тип пароля, я получаю сообщение об ошибке.

Error: Call to a member function loadUserByUsername() on a non-object

Более конкретно

$user = $this->userProvider->loadUserByUsername($username); <-OAuthStorage.php at line 161

/OAuth/v2/маркер? Client_id = [ClientId] & client_secret = [CLIENTSECRET] & grant_type = пароль & имя пользователя = тест & пароль = тест

Таким образом, для OAuthStorage нет набора пользователей. Я не могу найти хорошую документацию о том, как установить поставщика для этого.

Моя безопасность конф

encoders: 
    FOS\UserBundle\Model\UserInterface: bcrypt 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

providers: 
    user_provider: 
     id: fos_user.user_provider.username_email 

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt|error)|css|images|js)/ 
     security: false 

    oauth_token: 
     pattern: ^/oauth/v2/token 
     security: false 

    oauth_authorize: 
     pattern: ^/oauth/v2/auth 
     form_login: 
      provider: user_provider 
      check_path: _security_check 
      login_path: _demo_login 
     anonymous: true 

    api: 
     pattern: ^/api 
     fos_oauth: true 
     stateless: true 

access_control: 
    # You can omit this if /api can be accessed both authenticated and anonymously 
    - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] } 

Как вы думаете, ребята. Есть идеи?

ответ

1

Eureka!

Таким образом, очевидно, что поставщик настроен в config.yml. Я установил его для предыдущего пользовательского провайдера. Я назначил его тому же провайдеру, что и в security.yml, и все работает отлично.

Смежные вопросы