Я разработал API REST, есть два способа подключения к нему: session и oauth. В основном, мой сайт будет использовать режим сеанса, а стороннее программное обеспечение будет использовать режим oauth.Symfony Security: Auth с сеансом или 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
обработка Сессия:/авториз/сеанс. Управление OAuth:/auth/oauth. Api:/api.
Итак, с этой конфигурацией, с первым брандмауэром «api», я могу войти в систему с помощью токена. Но даже вошел в систему с сеансом, если я не укажу токен, у меня не будет доступа.
С первым брандмауэром «auth» я могу войти в систему с формой сеанса. Но даже если я укажу токен, у меня не будет доступа.
Я с ума схожу с этим. Я обнаружил, что при переполнении стека что-то о поставщиках цепочек, мне, вероятно, понадобится нечто вроде «брандмауэра цепи» ... если это запрещено, проверьте другой брандмауэр.
Спасибо
С этим внушения secong/веб-апи configturation перекрывает конфигурацию/API и FOSRestBundle строит маршруты для/только веб-API. Вы уверены, что это рабочее решение? @fdellutri –
@borN_free Я сделал некоторые изменения, попробуйте теперь с новым кодом – fdellutri
он работает! Этот ответ должен быть принят, потрясающий –