Symfony3 FOSOAuthServerBundle:无效的grant_type参数或参数缺失

时间:2017-09-19 16:37:29

标签: symfony fosrestbundle fosoauthserverbundle

我正在尝试在Symfony3上构建一个rest api并使用FOSOAuthServerBundle,JMSerializer和FOSUserBundle的组合。 我根据自己的知识设置了配置但是无法让api返回令牌。

事实上,它总是会回归         {“error”:“invalid_request”,“error_description”:“无效的grant_type参数或参数缺失”}

尽管提供了grant_type键和值

所以我对此FOSOAuthServerBundle: Invalid grant_type parameter or parameter missing进行了大量挖掘并尝试了一些建议,而FOSOAuthServerBundle + FOSRestBundle + CamelCase = Not authenticating我还是无法让它发挥作用。 根据我的发现,我可能需要禁用身体监听器,它将下划线键转换为FOSRestBundle或JMSerializer Bundle中的驼峰 然而,我不知道如何做任何一件事 我希望指出如何解决问题的正确方向

我的config.yml foss部分看起来像这样

# FOSRest Configuration
fos_rest:
    body_listener: true
    zone:
             - { path: ^/api }
    allowed_methods_listener: true

    format_listener:
        rules:
            - { path: '^/api', priorities: ['json'], fallback_format: json, prefer_extension: false }
            - { path: '^/', priorities: [ 'text/html', '*/*'], fallback_format: html, prefer_extension: true }

    param_fetcher_listener: true
    view:
        view_response_listener: 'force'
        formats:
            json: true 

security.yml看起来像这样

安全性:         编码器:            UserBundle \ Entity \ User:bcrypt

    role_hierarchy:
            ROLE_ADMIN:       ROLE_USER
            ROLE_SUPER_ADMIN: ROLE_ADMIN
    providers:
        in_memory:
            memory: ~
        fos_userbundle:
                    id: fos_user.user_provider.username

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:


        authenticate

           pattern: ^/
           form_login:
                    provider: fos_userbundle
                    #csrf_provider: security.csrf.token_manager
           logout:       true
           anonymous:    true

          #auth api stuff
        oauth_token:
              pattern: ^/oauth/v2/token
              security: false
        api_doc:
              pattern: ^/api/doc
              security: false
        api:
            pattern:  ^/api
            fos_oauth:    true
            stateless:    true

        #end
    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 }

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

0 个答案:

没有答案