ハッシュ化して保存しているパスワードと入力パスワードが等しいか確認する。
SimplePasswordHasherは3.0で削除されるのでBlowfishPasswordHasherを使う。記事のSimplePasswordHasherはBlowfishPasswordHasherに読み替えてください(追記 2015.04.01)。
BlowfishPasswordHasherはSimplePasswordHasherより強いハッシュアルゴリズム(bcrypt) を使い、 ユーザーソルトごとに提供します。SimplePasswordHasherはCakePHP version 3.0で削除されます。
シンプルな認証と承認のアプリケーション — CakePHP Cookbook 2.x ドキュメント
App::uses( 'SimplePasswordHasher', 'Controller/Component/Auth' );
class User extends AppModel {
.....
.....
public function getPasswordHash( $value ) {
$passwordHasher = new SimplePasswordHasher();
return $passwordHasher->hash( $value );
}
}
// パスワード取得
public function getPasswordById($id) {
$user = $this->find('first', array(
'conditions' => array('User.id' => $id),
'fields' => 'password'
));
return $user['User']['password'];
}
【CakePHP】BlowfishPasswordHasherで作成したハッシュパスと入力された平文パスが一致するか調べる – プログラムは、用いる言葉の選択で決まる
// 入力パスワードと等しいか確認
$pass = $this->getPasswordById($user[ 'id' ] );
$inputpass = $this->User->getPasswordHash($this->request->data['User']['password']);
if ($pass !== $inputpass ) {
// 等しくない
}
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。