Symfony Security: авторизация с сеансом или oauth

Я разработал REST API, к нему можно подключиться двумя способами: сессия и oauth. По сути, мой веб-сайт будет использовать режим сеанса, а стороннее программное обеспечение будет использовать режим oauth.

Мне удалось настроить сессионный и oauth-режимы на работу в Symfony, но я не могу заставить их работать одновременно.

Вот моя конфигурация безопасности брандмауэров:

firewalls:
    auth_oauth_token:
        pattern:    ^/auth/oauth/v2/token
        security:   false

    api:
        pattern:    ^/api
        anonymous:  false
        fos_oauth:  true
        stateless:  true

    auth:
        pattern:    ^/
        anonymous: ~
        form_login:
            login_path: /auth/session/check
            check_path: /auth/session/login
            always_use_default_target_path: true
            default_target_path: /auth/session/check
            failure_path: /auth/session/check
            failure_forward: false
            use_forward: false
            failure_forward: false
            username_parameter: username
            password_parameter: password
            post_only: true
            remember_me: false
            require_previous_session: false
        logout:
            path: /auth/session/logout
            target: /auth/session/logged_out
            invalidate_session: false

Обработка сеанса: / auth / session. Обработка OAuth: / auth / oauth. Api: / api.

Итак, с этим конфигом, сначала с брандмауэром «api», я могу войти с помощью токена. Но даже войдя в систему с сеансом, если я не укажу токен, у меня не будет доступа.

Сначала с помощью брандмауэра «auth» я могу войти в систему через форму сеанса. Но даже если я укажу токен, у меня не будет доступа.

Я схожу с ума от этого. Я обнаружил в переполнении стека что-то о цепных провайдерах, мне, вероятно, понадобится что-то вроде «цепного брандмауэра» ... если запрещено, проверьте другой брандмауэр.

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос