Как настроить провайдера на токен oauth

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

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

Ошибка: вызов функции-члена loadUserByUsername() для необъекта

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

$user = $this->userProvider->loadUserByUsername($username); ‹-OAuthStorage.php в строке 161

/oauth/v2/token?client_id=[CLIENTID]&client_secret=[CLIENTSECRET]&grant_type=password&username=test&password=test

Таким образом, для 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 ] }

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


person Theodore Enderby    schedule 20.08.2015    source источник


Ответы (1)


Эврика!

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

person Theodore Enderby    schedule 20.08.2015