0

我正在尝试实现 FOSOAuthServerBundle。我需要它来创建将由其他一些项目共享的集中式身份验证功能。

我从这里开始学习教程:FOSOAuthServerBundle 入门

但是我现在有一个问题:当尝试访问路由 auth.local/app_dev.php/oauth/v2/auth 时,我收到以下错误:

InvalidConfigurationException: The child node "providers" at path "security" must be configured.

这是我的security.yml:

security:
firewalls:
    api:
        pattern: /api
        fos_oauth: true
        stateless: true
    oauth_authorize:
        pattern: /oauth/v2/auth 
        form_login:
            provider: fos_userbundle
            check_path: /oauth/v2/auth_login_check
            login_path: /oauth/v2/auth_login
        anonymous: true
    oauth_token:
        pattern: /oauth/v2/token
        security: false      

access_control:
    - { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
4

1 回答 1

2

此错误与 FOSOAuthServerBundle 没有太大关系,而与您的 security.yml 配置有关。你还没有指定提供者,所以 symfony 不知道从哪里加载用户。您应该阅读Symfony 文档中的安全页面以了解如何正确配置它。如果您想要数据库中的用户,请查看从数据库中加载用户。无论哪种方式,您都应该拥有一个具有如下结构的 security.yml:

security:
    encoders: #your encoder here
    providers: #your provider here
    firewalls: #your firewalls here
    access_control: #your access_control here

您可以通过查看文档并使用最适合您需要的内容来填写每个部分,有很多选择。但是你必须有一个providers部分。

于 2014-12-02T18:35:10.550 回答