0

Cakephp-core の AuthComponent を使用しています。そのため、 isAuthorized()-Method を使用してリクエストをチェックします。「通常の」リクエストの場合、これは問題なく機能します。 isAuthorized() が false を返すと、ユーザーは「どこから来たのか」にリダイレクトされ、setFlash を使用すると、認証の問題が何であるかというメッセージを表示できます (必要に応じて)。

しかし、AJAX リクエストに関しては、もちろん意味がありません。応答は、ユーザーが応答テキストとして現在使用しているページです...私が望むのは、ajax呼び出しで承認が失敗した場合、ステータス400(またはその他)の応答を送信し、「承認されていません」というメッセージだけを送信することですあなたは管理者ではないからです」(または何でも)。

それを達成する簡単な方法はありますか?

私の頭に浮かぶ唯一の回避策は、特にすべての ajax リクエスト用のコントローラーを作成することです。その isAuthorized() メソッドでは、(承認が失敗した場合) 1 つのパラメーター (失敗メッセージ) を持つアクションにリダイレクトされ、そのアクションはこのメッセージだけをレンダリングします。しかし(もちろん、それがまったく機能するかどうかはわかりませんが、可能であればisAuthorized()からのリダイレクトですが、そうなると思います)それはかなり...汚い/ずさんなようです。誰かがより簡単でクリーンな方法を知っていますか?

どんなアイデアでも嬉しいです!

4

1 に答える 1