2012-04-04 5 views
0

cakephp 2.1とAuthに問題があります。私AppControllesでcakephp 2.1サインアップとログイン

は、私は()パスワードはMD5がエンコードされている

array(
    'User' => array(
     'password' => '*****', 
     'username' => 'me', 
     'remember_me' => '1' 
    ) 
) 

を返す関数getUserdetails()

if (($user = $this->Auth->user()) != null) 
    { 
     $this->loadModel('User'); 
     $tmp = $this->User->find('first',array(
      'conditions' => array('username' => $user['User']['username'], 
         'password'=> $user['User']'password'], 
       'active' => 1), 
      'recursive' => -1)); 

     if(!isset($tmp['User'])) 
     return null; 

     $this->_userDetails = $tmp['User']; 
     $this->set('userDetails', $this->_userDetails); 
    } 
    else 
     return null 

は、ユーザーが最初に返します$ this-にサインアップ> Auth->ユーザーを持っています。ログアウトして再度ログインすると、以前の配列のパスワードはプレーンテキストで返され、User-> findはfalseを返します。このための単一の機能を作る方法はありますか? $ this-> Auth-> user()のパスワードがmd5であるかどうかをどのように知ることができますか?

おかげ

答えて

0

はこれを試してみてください:ユーザーに関する

public function login() { 
    //If a user is already logged in, redirect him 
    if ($this->Session->read('Auth.User')) { 
     //$this->Session->setFlash('You are logged in!'); 
     $this->redirect(array('controller' => 'showspage', 'action' => 'home')); 
    } 

    if ($this->request->is('post')) { 
     $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']); 

     if ($this->Auth->login()) { 
      $this->redirect($this->Auth->redirect()); 
     } else { 
      $this->Session->setFlash('Wrong username or password'); 
      $this->redirect(array('controller' => 'showspage', 'action' => 'home')); 
     } 
    } 
    $this->Session->setFlash('You aren't legged-in!'); 
    $this->redirect(array('controller' => 'showspage', 'action' => 'home')); 
} 

するすべての情報は、セッションであり、あなたがAuthコンポーネントでそれを見つけることができます。

エス:Authコンポーネント::ユーザー( 'ユーザ名');

+0

何らかの理由でAuthComponent :: user( 'email')&AuthComponent :: user( 'password')がnullを返します。 – gong

関連する問題