ユーザーが保護されたURLにアクセスしようとしていて、でない場合、コードを実行する必要があるという状況があります。は認証/承認されています。URL /ルートがプログラムでファイアウォールの背後で保護されているかどうか確認できますか?
デフォルトでは、Symfonyはユーザをログインフォームにリダイレクトまたは転送することによって、認証されていないユーザを処理します。リクエストメソッドがPOSTで、代わりにJSONオブジェクトをエコーした場合、これが起こらないようにしたいと思います。
- チェック:私はこれを処理すると考えることができ
最良の方法は、
kernel.request
イベントをリッスンし、二つのことをチェックするカスタム・リスナーを作成することですユーザーは完全に 認証済み
POSTリクエストで、ユーザーが完全に認証されていない場合は、JSONオブジェクトをエコーします。
しかし、私のリスナーはすべてのリクエストに対して(期待どおり)発砲しています。要求がファイアウォールで保護されているURLのものかどうかをチェックするように制限したいと思います。これを計画的にチェックすることは可能ですか?
は、私はまた、このについて移動する簡単な方法がありますしつこい疑いを持っていますが、誰もが任意のヒントを持っている場合、私は彼ら:)
編集を聞いてみたいので、それを把握することはできません
@@問題 - ファイアウォールされたリクエストのみをチェックする理由は、ファイアウォールされていないリクエストがいくつかあり、コードが実行された場合、リクエストの実際の応答ではなく、前述のJSONオブジェクトを受け取ります。
私がログインしていない場合、api/get/something
(ファイアウォールの後ろにある)にPOSTリクエストを行うと、Symfonyはログインページを記述するHTMLを返します。代わりに、私はちょうど{error: 'User is not authorized'}
のような何かをエコーしたいです。しかし、私はこれがPOST要求に対してのみ起こるようにしたい。
ファイアウォールで保護されたリクエストをチェックする理由は何ですか? – Problematic
@Problematic、私の編集 –