2011年2月25日金曜日

CakePHP1.3 AuthコンポーネントのloginRedirect

アクシスおおくまです。

CakePHPのAuthコンポーネントで、
ログイン後に指定したページを表示させるには

$this->Auth->loginRedirect = '表示させたいページ'


としたのだけど、セッションタイムアウトなどで
自動的にログインページに遷移してしまった場合には
どうも元のページに戻ろうとしてしまっていた。
(つねにログイン後のページは固定したかった。)

あまり時間が取れなかったので
さっとAuthコンポーネントのソースを開いてみた。
で、ログイン用のコントローラのbeforeFilter()で

$login_redirect = '表示させたいページ';
$this->Auth->loginRedirect = $login_redirect;

$auth_redirect = $this->Session->read('Auth.redirect'); 
if (!empty($auth_redirect) && $auth_redirect != $login_redirect)
    $this->Session->write('Auth.redirect', $login_redirect);


こうしてみるとうまくいった。

0 件のコメント:

コメントを投稿