Auth组件无法在CakePHP 2.0上运行

时间:2012-04-14 20:35:37

标签: cakephp authentication

我在其Auth方法上尝试过大多数(如果不是全部)CakePHP 1.3教程,而非似乎可以在CakePHP 2.0上使用。

我可以添加用户,哈希密码,但登录功能不起作用。它只是在我点击登录时刷新页面。没有错误,没有任何错误。

我很感激您的一些提示,并感谢您阅读我的问题。

这是我的代码  公共功能登录()     {

    if ($this->request->is('post') )
    {

        if( $this->Auth->login() )
        {

            // the redirect() function in the Auth class redirects us
            // to the url we set up in the AppController.
            return $this->redirect( $this->Auth->redirect());
        }
        else
        {

            $this->Session->setFlash(__('Email or password is incorrect',true));
        }
    }
}

谢谢, Mahadeva Prasad

1 个答案:

答案 0 :(得分:0)

首先检查你如何散列密码。还要检查数据库中的字段长度。 首选 - varchar(255) 密码将如下所示。

class User extends AppModel {
   public function beforeSave($options = array()) {
        $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
        return true;
   }
} 

当您使用FormAuthenticate时,请在声明组件时尝试使用它。

public $components = array(
'Auth' => array(
    'loginAction' => array(
        'controller' => 'users',
        'action' => 'login',            
    ),       
    'authenticate' => array(
        'Form' => array(
            'fields' => array('username' => 'username')
        )
    )
)
);

有关更多信息,请参阅http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html