edo1z blog

プログラミングなどに関するブログです

cakephp - ログインが必要なajaxでログインが切れちゃった場合の挙動

authコンポーネントつかってるので、authコンポーネントでログイン状態を確認したときに、ajaxだった場合は、ログイン画面にリダイレクトする変わりに、ログインしてねというメッセージをviewにセットして、終了したい。

cakephpのcookbookみたら、ちゃんとそういう変数があるらしい。便利だ、なんでもある。 http://book.cakephp.org/2.0/ja/core-libraries/components/authentication.html#AuthComponent::$ajaxLogin

$ajaxLoginにviewの名前をいれたらいいらしい。 viewというかエレメントのようだ。

AuthComponentのstartupメソッドでログイン状態とか、ログインしてなくてもアクセスさせてよいかなどを実際にチェックしており、その際にリクエストがajaxで、指定したアクションにアクセスできない場合に、$ajaxLoginにエレメントを指定しておけばそれを表示して終わってくれる。

authコンポーネントのstartupメソッドは、beforFileterより後に実行されるので、beforeFileterで何やら色々やってる場合は注意が必要だなと思った。