symfony - 将 FOSUserBundle 与 FOSOAuthServer 集成时出错

标签 symfony oauth-2.0 fosuserbundle fosoauthserverbundle

我正在尝试将 FOSUserBundleFOSOAuthServerBundle 集成以保护我的 RESTFul API,但我在访问登录页面时收到以下错误,我是对它来说很新,所以我不知道如何消除这个错误。

这里我尝试打开FOSUserBundle的登录表单,以便我可以登录它并获取 token

enter image description here

这是我的security.yml

# FOR FOSUserBundle 

security:

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true

    access_control:
        - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN


# FOR FOSOAuthServerBundle 

security:
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
    firewalls:
        oauth_token:
            pattern:    ^/oauth/v2/token
            security:   false


        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
            # Add your favorite authentication process here

        api:
            pattern:    ^/api
            fos_oauth:  true
            stateless:  true
            anonymous: true # can be omitted as its default value

    access_control:
           - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }

最佳答案

我相信您的 security.yml 应该如下所示:

security:
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

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


    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
        # Add your favorite authentication process here

    api:
        pattern:    ^/api
        fos_oauth:  true
        stateless:  true
        anonymous: true # can be omitted as its default value
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
        logout:       true
        anonymous:    true

access_control:
    - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }
    - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

关于symfony - 将 FOSUserBundle 与 FOSOAuthServer 集成时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19434515/

相关文章:

php - 在 FOSUserBundle 中,如何创建替代注销

symfony - 如何在 Symfony2 中使用 FOSUserBundle 正确注销

java - 如何从java桌面应用程序中保存fos_user数据

php - 从 symfony 4 中的文件夹中删除文件

php - Laravel 和 oauth 2

sharepoint - 使用 OAuth2S2SClient 获取 AccessToken 返回 "Token Request failed"?

oauth-2.0 - 如何在 GSuite 中创建仅供内部使用的 OAuth 2.0 应用程序?

php - Symfony Sonata Admin 仅将属性显示为只读文本

php - 注释组在 Doctrine 中的用途是什么

php - 我们可以在 symfony2 访问控制中使用正则表达式吗?