Symfony Security: Auth z sesją lub oauth
Opracowałem API REST, istnieją dwa sposoby łączenia się z nim: sesja i oauth. Zasadniczo moja witryna będzie korzystać z trybu sesji, a oprogramowanie innych firm będzie korzystać z trybu oauth.
Udało mi się sprawić, że zarówno sesje, jak i tryby oauth działały w symfony, ale nie mogę ich uruchomić w tym samym czasie.
Oto moja konfiguracja zabezpieczeń firewalli:
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
Obsługa sesji: / auth / session. Obsługa OAuth: / auth / oauth. Api: / api.
Dzięki tej konfiguracji, z zaporą „api” jako pierwszą, mogę zalogować się za pomocą tokena. Ale nawet zalogowany z sesją, jeśli nie podam tokena, nie będę miał dostępu.
Przy pierwszej zaporze „auth” mogę zalogować się za pomocą formularza sesji. Ale nawet jeśli podam token, nie będę miał dostępu.
Robię się z tego szalony. Znalazłem na przepełnieniu stosu coś o dostawcach łańcuchów, prawdopodobnie potrzebowałbym czegoś takiego jak „zapora sieciowa” ... jeśli jest to zabronione, sprawdź inną zaporę.
Dziękuję Ci