私のアプリケーションは常にログイン画面にリダイレクトされるように設定されています。しかし、ログインとログアウトのリダイレクトは私を苦労させている。CakePHP認証ログインが間違った場所にリダイレクトされる
実際にログインすると、まずログアウトURLにリダイレクトされます.2回目にログインすると、正しくホームページにリダイレクトされます。その後、ログアウトすると、ログインURLにリダイレクトされ、ログアウトURLにはリダイレクトされません。
app_controller.phpでは
public function beforeFilter() {
$this->Auth->userModel = 'User';
$this->Auth->loginAction = '/users/login';
$this->Auth->loginRedirect = '/home';
$this->Auth->logoutRedirect = '/users/login/1';
$this->Auth->authError = 'You must be logged in to view this page.';
}
そしてusers_controller.phpで
public function login($loggedout = false) {
if ($this->Session->check('Message.auth')) {
$this->Session->setFlash('Incorrect username or password.', 'default', array('class' => 'msg error'), 'auth');
} elseif ($loggedout) {
$this->Session->setFlash('You have been logged out.', 'default', array('class' => 'msg success'), 'auth');
}
}
/**
* Logout action
*/
public function logout() {
$this->redirect($this->Auth->logout());
}
私が間違って何が起こっているか見当がつかない。これはかなりシンプルなコンポーネントのように思えます。私は途中でCakePHPの初心者です。
基本的には、ログインが家/にリダイレクトする必要があり、およびログアウト/ユーザー/にリダイレクト/ 1ので、私は再びログインフォーム上の「ログアウトされました」というメッセージを表示することができますログインする必要があります。それは文字通り私がする必要があるすべてです。
OK、私はこれを考え出しました。基本的にこれは、CakePHP Authが苦しんでいるような一種のログインリダイレクトループと関係しています。基本的には、自分のログインページがAuth-> allowリストに手動で追加されていることを確認してから、Auth.redirectセッション変数がループバックしていないかどうかを確認するカスタムコードを追加する必要がありました。 – BadHorsie
ログインは自動的に許可リストに含まれます。 –
はい、許可リストにログインを手動で指定していない場合、/ users/login/out:1にログアウトすると、ログアウトしたメッセージを表示できるので、/ users/loginに再度リダイレクトされます決して表示されません。 – BadHorsie