0

CakePHP 1.3 のすべてではないにしてもほとんどのチュートリアルを Auth メソッドで試しましたが、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 に答える