Symfony3 FOSOAuthServerBundle: неверный параметр grant_type или параметр отсутствует

Я пытаюсь создать API для отдыха на Symfony3 и использовать комбинацию FOSOAuthServerBundle, JMSerializer и FOSUserBundle. Насколько мне известно, у меня настроены конфигурации, но я не могу заставить API вернуть токен.

на самом деле он всегда возвращает {"error":"invalid_request","error_description":"Неверный параметр grant_type или параметр отсутствует"}

несмотря на предоставление ключа и значения grant_type

поэтому я сделал кучу копаний и попробовал предложения по этому FOSOAuthServerBundle: Invalid grant_type параметр или параметр отсутствует, а также этот FOSOAuthServerBundle + FOSRestBundle + CamelCase = без аутентификации Я так и не смог заставить его работать. из моих выводов мне, вероятно, нужно отключить прослушиватель тела, который преобразует подчеркнутые ключи в верблюда либо в FOSRestBundle, либо в JMSerializer Bundle, однако я понятия не имею, как это сделать, либо я был бы признателен за указатели в правильном направлении о том, как решить проблему

мой раздел foss config.yml выглядит так

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

person Edgar Chris    schedule 19.09.2017    source источник
comment
Вы должны опубликовать часть кода, который вы используете, чтобы вам могли помочь.   -  person Alvin Bunk    schedule 19.09.2017
comment
см. обновление содержит код из config.yml и security.yml   -  person Edgar Chris    schedule 20.09.2017
comment
Вы настроили свою систему безопасности, чтобы разрешить доступ к пути /api только аутентифицированным пользователям, поэтому пользователю необходимо пройти аутентификацию, сначала обратившись к /login с именем пользователя и паролем, и в том же сеансе/запросе сделать вызов API (GET или POST).   -  person Alvin Bunk    schedule 20.09.2017
comment
маршрут для аутентификации через API - это /oauth/v2/token, и он не защищен брандмауэрами, я могу опубликовать его в порядке, но ответ никогда не будет ожидаемым токеном доступа, который позволит вам получить доступ к защищенному / API маршруты всегда возвращают неверный параметр grant_type или параметр отсутствует, даже если он предоставлен   -  person Edgar Chris    schedule 20.09.2017
comment
Я совершенно уверен, что вы отправляете запрос json. Не знаю почему, но он не поддерживается. Попробуйте отправить данные как данные формы.   -  person JuliSmz    schedule 23.03.2020