【问题标题】:How to set provider to oauth token如何将提供者设置为 oauth 令牌
【发布时间】:2015-11-14 18:31:03
【问题描述】:

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

我可以获得客户端类型的访问令牌,但使用密码类型时会出错。

错误:在非对象上调用成员函数 loadUserByUsername()

更具体的

$user = $this->userProvider->loadUserByUsername($username);

/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 ] }

你们怎么看。有什么想法吗?

【问题讨论】:

    标签: symfony oauth fosoauthserverbundle


    【解决方案1】:

    尤里卡!

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

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 2015-10-19
      • 1970-01-01
      • 2016-04-26
      • 2021-07-17
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多