FOSOAuthServer не может получить доступ к странице авторизации - PullRequest
0 голосов
/ 12 апреля 2019

Я использую Symfony 4. Я использую API Platform и FOSOAuthBundle.Я могу создать клиента и создать токен, но не могу получить доступ к форме авторизации

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

    oauth_token:
        host: api.forheavent.test
        pattern:    ^/oauth/v2/token
        security:   false

    oauth_authorize:
        host: api.forheavent.test
        pattern:    ^/oauth/v2/auth
        anonymous: ~

        #form_login:
        #    provider: db_provider
        #    check_path: /oauth/v2/auth
        #    login_path: /oauth/v2/auth

    api: #api resources
        host: api.forheavent.test
        pattern:   ^/
        provider: db_provider
        fos_oauth:  true
        stateless:  true
        anonymous:  true # can be omitted as its default value

    main:#regular website
        anonymous:  ~
        host: ^forheavent.test$
        context: user
        form_login:
            login_path: login
            check_path: /login_check
            username_parameter: email
            password_parameter: password
        provider: db_provider
        guard:
            entry_point: App\Security\LoginFormAuthenticator
            authenticators:
                - App\Security\LoginFormAuthenticator
        logout:
            path: logout
            target: index

access_control:
    - { path: ^/fr/connexion, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https}
    - { path: ^/oauth/v2/auth, roles: [ IS_AUTHENTICATED_ANONYMOUSLY ], host: api.forheavent.test  }
    - { path: ^/(?!oauth.*$).*, roles: [ IS_AUTHENTICATED_FULLY ], host: api.forheavent.test} #Urls except starting with oauth (Ex routes for authorization and token)

#fos_oauth_server.yaml
fos_oauth_server:
   db_driver: orm       # Drivers available: orm, mongodb, or propel

   client_class: App\Entity\Client
   access_token_class: App\Entity\AccessToken
   refresh_token_class: App\Entity\RefreshToken
   auth_code_class: App\Entity\AuthCode

   service:
       user_provider: security.user.provider.concrete.db_provider

Когда я пытаюсь получить доступ к: https://api.forheavent.test/oauth/v2/auth?client_id=1_1212121212

Я продолжаю получать эту ошибку:«Для доступа к этому ресурсу требуется полная аутентификация. Я хотел бы получить доступ к контроллеру по умолчанию и доступу к моей странице авторизации.

Еще одна вещь, которую я попробовал, - это поместить form_login по умолчанию, потому что Symfony требуется прослушиватель аутентификатора, еслиЯ удаляю анонимную опцию из своего межсетевого экрана аутентификации ... но на самом деле я не хочу этого, я прочитал много вопросов, документов, tutos, но я не могу с этим справиться.Заранее спасибо

...