2009-05-05 7 views

答えて

1

$this->Auth->autoRedirect = false; 

これをfalseに設定するには、次のコードは、CakePHPのログイン機能の後に実行することができますその魔法を果たした。あなたのログイン機能の追加で

if ($this->Auth->User()) { 
$this->User->id = $this->Auth->user('id'); 
$this->User->saveField('last_login', date('Y-m-d H:i:s')); 
} 

注:あなたは、ユーザーテーブルおよび日時にそのセットにlast_loginフィールドを持っていることを確認してください。

0

アプリあなたにAuthComponentに建て使用していると仮定すると、あなたはあなたのコントローラで次のプロパティを設定する必要があります。

$this->Auth->autoRedirect = false; 

はこれを行うためにあなたのlogin()機能(およびlogout())を使用することができますもの。現在ログインしているユーザーに関する情報は、

$this->Auth->user() 

で利用できます。このデータを使用して、そのユーザーに必要なものを実行できます。

恥知らずの自己宣伝として、my open source projectを見てみましょう。このテクニックを使って「私を覚えてください」というクッキーを作成しています。

0

autoRedirectをtrueに設定しても、login()関数にstuffを追加できると思います。私は暗黙のリダイレクト(ユーザー要求の制限されたリソース、ログインしてからリダイレクトされる)に関するいくつかの問題を抱えていたので、ログイン機能にいくつかのコードを追加しました。正常に動作するように見え、さらにautomagicログイン機能が呼び出されます。

私はログインして、あなたのために動作するかどうかを確認するためにいくつかのロジックを追加するといいでしょう。あなたはケーキのAuthコンポーネントを使用している場合は、まずあなたはのbeforeFilter関数に次の行を挿入する必要があります

0

私が好きなパターンは、UserモデルでafterLogin()フックを作成することです。そして、Userモデルに作成

function beforeFilter() { 
    $this->Auth->autoRedirect = false; 
    parent::beforeFilter(); 
} 

function login() { 
    if($this->Auth->User()) { 
     if(!$this->User->afterLogin($this->Auth->User())) { 
      return $this->logout(); 
     } 

     $this->redirect($this->Auth->redirect()); 
    } 
} 

function afterLogin($User) { 
    // perform actions on $User here 

    return true; // return false to halt login 
} 
をだからあなたがUserControllerでのようなものを作成します
関連する問題