2012-01-17 6 views
0

私は単純なログインシステムを設定しようとしていますが、私は解決できない問題があります。私は自明な行動を行う次のページを持っています。それらは簡単にアクセスできるようにブックマークされています。CakePHP:特定のステップを実行するとログインが失敗する

cake/ (home page; must be logged in) 
cake/login (must be logged in) 
cake/logout (must be logged in) 
cake/add (must be logged in) 

すべては、私はアクションの次のシーケンスをプリフォームする場合を除いて動作するようです:

1. log in 
2. go to cake/logout to log out (login works immediately after this step) 
3. go to cake/logout again immediately 
4. attempt to log in but cake/login is just re-displayed and I'm not logged in 
5. attempt to log in again and it is successful 

私は$this->Session->flash('auth')は、ステップ3の後にFALSEであることに気づいたが、それは私が破壊しようとした。4.後に偽ではありませんログアウト前またはログアウト後にセッションを有効にしないでください。何か案は?

私のコードビットは以下の通りです:私はあなたのログイン後にログアウト画面にリダイレクトされていることを

class UsersController extends AppController { 
public function beforeFilter() { 
    parent::beforeFilter(); 
    $this->Auth->allow('add'); 
} 
public function add() { 
    if (!empty($this->data)) { 
     $this->User->create(); 
     if ($this->User->save($this->data)) { 
      $this->Session->setFlash('User created!'); 
      $this->redirect(array('action'=>'login')); 
     } else { 
      $this->Session->setFlash('Please correct the errors'); 
     } 
    } 
} 
public function login() { 
} 
public function logout() { 
    $this->Session->destroy(); // makes no difference 
    $this->redirect($this->Auth->logout()); // redirected to login() by default 
} 
} 

class AppController extends Controller { 
public $components = array('Auth', 'Session'); 
} 

答えて

0

と思います。 アクセス権のないページ(ログアウト画面のような)に移動すると、ログインにリダイレクトされます。 名前とパスワードを入力すると、元の要求に戻ります。 元のリクエストがログアウトページになった場合、ログアウトが発生し、ログインに戻ってきます。

関連する問題