0

我已经在他们的 Auth 方法上尝试了大部分(如果不是全部)CakePHP 1.3 教程,但似乎不适用于 CakePHP 2.0。

我可以添加用户,散列密码,但登录功能不起作用。当我点击登录时,它只是刷新页面。没有错误,什么都没有。

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

这是我的代码 public function login() {

    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));
        }
    }
}

谢谢,马哈德瓦·普拉萨德

4

1 回答 1

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

于 2012-04-15T05:47:26.290 回答