プレーンテキストのパスワード フィールドを持つ既存のデータベースに CakePHP 2 Web サイトを実装したいと思います。
これは私のAppControllerです
class AppController extends Controller {
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'users', 'action' => 'home'),
'authError' => 'You cannot view this page',
'authorize' => array('Controller'),
'authenticate' => array(
'Form' => array(
'userModel' => 'User',
'fields' => array('username' => 'user_id', 'password' => 'user_password')
)
)
)
);
public function isAuthorized($user) {
return true;
}
function beforeFilter() {
$this->Auth->allow('home');
//$this->Auth->authenticate = $this->User;
parent::beforeFilter();
}
これは私の UserController です。
class UsersController extends AppController {
public $paginate = array(
'fields' => array('user_id', 'user_desc', 'user_password'),
'limit' => 25,
'order' => array(
'user_id' => 'asc'
)
);
function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Cannot Login');
}
}
}
}
これは私のユーザーモデルです
class User extends AppModel {
public $name = 'User';
public $primaryKey = 'user_id';
public $belongsTo = 'Group';
}
上記のファイルによると、login.ctp の [ログイン] ボタンを押すと、
select * from users where user_password = 'this_is_hashing_password'
SQLダンプセクション。
では、自動ハッシュアルゴリズムをオフにして、login() がユーザー入力とデータベースに保存されたパスワードをプレーンテキストとして比較する方法を教えてください。
私は CakePHP の本をたくさん読んでみましたが、インターネットから見つけた hashPasswords($data) テクニックを使用しても何も見つかりません。
助けてください。コンタップ。