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

questionAnswers(1)

yourAnswerToTheQuestion