如何将提供程序设置为oauth令牌

时间:2015-08-20 22:49:03

标签: symfony oauth fosoauthserverbundle

我已经设置了OAuth [使用FOSOauthServerBudle]。我正在设置密码类型流程。

我可以获得具有客户端类型的访问令牌,但使用密码类型我会收到错误。

  

错误:在非对象

上调用成员函数loadUserByUsername()

更具体地说

  

$ user = $ this-> userProvider-> loadUserByUsername($ username); < -OAuthStorage.php在第161行

/的OAuth / V2 /令牌的client_id = [客户端ID]&安培; 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 个答案:

答案 0 :(得分:1)

尤里卡!

显然,提供程序是在config.yml中配置的。我把它设置为以前的自定义用户提供程序。我将它设置为security.yml中指定的同一个提供程序,一切正常。