私は2つの領域を持つSymfonyアプリケーションを持っています。1つはWebページからアクセスするクライアント用で、もう1つはAJAXおよびWebサービスからのAPI呼び出し用です。
この領域のそれぞれは、それ自体がファイアウォールで保護されています。WEBインターフェースはログインフォームで認証され、APIは。で認証されますhttp_basic
。
どちらのファイアウォールも正常に機能しますが、WEBインターフェイスがAPIインターフェイスに対してAJAX呼び出しを行うと、ブラウザは、ユーザーがすでにログインしている場合でも(ログインフォームを介して)、ユーザーに再度ログインするように求めます。これは私が避けたいことです。このプロンプトを防ぐために、両方のファイアウォールを同時に認証したいと思います。
まったく同じ問題の別の質問を見ました。しかし、http_basic
両方のファイアウォールで認証を使用しているため、提案されたソリューションは私の場合は機能しませんでした。
1つのログインフォームで複数のsymfony2ファイアウォールを認証します
私のsecurity.yml
#....
firewalls:
api:
pattern: ^/API
context: primary_auth
stateless: true
http_basic:
realm: "API: Please log in"
web:
pattern: ^/
context: primary_auth
form_login:
check_path: /login_check
login_path: /login
provider: fos_userbundle
logout:
path: /logout
target: /
anonymous: ~