2011-08-11 12 views
0

ファイルアップロードを実行中のCakePHPにアプリケーションが組み込まれています。ファイルのアップロードごとに、私はユーザーのIDを知っているので、$ this-> Auth-> user()から取得します。CakePHP、ファイルアップロード、整合性のない認証

ここで私が見つけたのは、ログインしていますが、print_rを$ this-> Auth-> user()にすると、何も返されず、次にファイルをアップロードしようとすると、ログインしたりログアウトしたりせずに戻ります。それは時々それがそこにあるが、他の時にそれを見ないという点で、非常に矛盾しているようだ。

私には何が欠けていますか?ありがとう!

+0

アプリ全体で認証コンポーネントが必要でしたか? – Ken

+0

yoe、app_controller内 – pll

+0

FIXED:セキュリティが "high"に設定されているため、セッションを無効にしていたajax呼び出しでセッションIDを再生成していました – pll

答えて

0

なぜあなたのapp_controllerの変数を$this->Auth->userModelに設定しないかは、アプリケーションの残りの部分からアクセスできるようにしてください。

私のapp_controllerでは、私はbefore_filterに以下を呼び出して$current_userと設定します。他の場所で私のアプリで

/** 
* Sets a value for current user $current_user. 
* @return boolean 
*/ 
function __setCurrentUser() { 
    $user = null; 
    if ($user = $this->Auth->user()) { 
     $this->set('current_user', $user[$this->Auth->userModel]); 
     return true; 
    } else { 
     return false; 
    } 
} 

、私は$current_user['id']経由$current_userのIDにアクセスすることができます。

0

また、AuthComponentによって作成されたセッションからuserinfoを取得することもできます。もし$ this-> Auth-> user( 'id')が空であれば、実際に有効なセッションがあるのでしょうか?その間にログアウトしていないことを確かめてください。何らかの理由でページにログインする必要はありませんか?

関連する問題