REST API を開発しました。これに接続するには、セッションと oauth の 2 つの方法があります。基本的に、私の Web サイトはセッション モードを使用し、サードパーティ ソフトウェアは 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" ファイアウォールを使用すると、セッション フォームでログインできます。しかし、トークンを指定してもアクセスできません。
私はこれに夢中になっています。スタック オーバーフローでチェーン プロバイダーに関する何かを見つけました。おそらく「チェーン ファイアウォール」のようなものが必要になるでしょう...禁止されている場合は、別のファイアウォールを確認してください。
ありがとうございました