2014-09-27 3 views
0

Auth가 false를 반환합니다. 해시 된 암호는 데이터베이스의 해시 된 암호와 일치하지만 여전히 false를 반환합니다. UsersController 여기Cakephp 2.5.2 Auth는 항상 false를 반환합니다.

 class AppController extends Controller { 


     public $components = array(
     'Session', 
     'Auth' => array(
     'authenticate' => array(
      'Form' => array(

      ) 
     ), 
     'loginAction'=>array(
      'controller'=>'users', 
      'action'=>'login' 
     ), 
     'loginRedirect' => array(
      'controller' => 'references', 
      'action' => 'admin_index' 
     ), 
     'logoutRedirect' => array(
      'controller' => 'home', 
      'action' => 'index', 
      'home' 
     ) 

    ) 
    ); 
    public function beforeFilter() { 
    $this->Auth->allow('index', 'view'); 
    } 

    } 

됩니다 :

  public function login(){ 

     var_dump($this->Auth->login());die; 
     if ($this->request->is('post')) { 
     if ($this->Auth->login()) { 

      return $this->redirect(array('controller'=>'references', 'action'=>'admin_index')); 

     } 

     $this->Session->setFlash(__('Invalid username or password, try again')); 
     } 
     } 

그리고보기 :

  <div class="users form"> 
     <?php echo $this->Session->flash('auth'); ?> 
     <?php echo $this->Form->create('User',array('action'=>'login')); ?> 
      <fieldset> 
     <legend> 
     <?php echo __('Please enter your username and password'); ?> 
     </legend> 
     <?php echo $this->Form->input('username'); 
     echo $this->Form->input('password'); 
     ?> 
     </fieldset> 
     <?php echo $this->Form->end(__('Login')); ?> 
     </div> 
,691 여기
App::uses('AppModel', 'Model'); 

    class User extends AppModel { 

    public $validate = array(
    'username' => array(
     'notEmpty' => array(
      'rule' => array('notEmpty'), 
      //'message' => 'Your custom message here', 
      //'allowEmpty' => false, 
      //'required' => false, 
      //'last' => false, // Stop validation after this rule 
      //'on' => 'create', // Limit validation to 'create' or 'update' operations 
     ), 
     ), 
     'password' => array(
      'notEmpty' => array(
      'rule' => array('notEmpty'), 
      //'message' => 'Your custom message here', 
      //'allowEmpty' => false, 
      //'required' => false, 
      //'last' => false, // Stop validation after this rule 
      //'on' => 'create', // Limit validation to 'create' or 'update' operations 
     ), 
     ), 
     ); 
     public function beforeSave($options = array()) { 
    if (isset($this->data[$this->alias]['password'])) { 

     $this->data[$this->alias]['password'] =AuthComponent::password($this->data[$this->alias]['password']); 

     ; 
    } 
    return true; 



} 
     } 

는 AppController가 있습니다 : 여기

모델입니다

BlowFish를 사용해 보았지만 작동하지 않습니다. 따라서 사용자를 생성하고 일치 할 때 해싱이 정상적으로 작동 할 수 있도록 인증 기본 해싱과 해시로 전환했습니다. 나는 문제가 무엇인지 알지 못한다. 그래서 제발 도와주세요.

답변

0

30 분 후에 다시 시도해 보았습니다. 누가 그 문제인지 알았습니다. 어쨌든, 위의 코드에서 문제를 발견하면 답변을 읽고 답해 주셔서 감사합니다. 감사!