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.
Итак, с этим конфигом, с "апи» сначала брандмауэр, я могу войти с помощью токена. Но даже вошли с сеансом, если я неТокен, я выигралу меня нет доступа.
С "Auth» брандмауэр, во-первых, я могу войти с помощью формы сеанса. Но даже если я укажу токен, я выиграюу меня нет доступа.
Я схожу с ума от этого. Я обнаружил в переполнении стека что-то о цепных провайдерах, мне, вероятно, понадобится что-то вродецепной брандмауэр "... если запрещено, проверьте другой брандмауэр.
Спасибо