この投稿について
暗号化されたパスワードの一致処理を書いてみました。
状況
受け取ったパスワード値を$passwordとします。
この$passwordと一致するユーザがいるかチェックします。
authを使用しないパターンです。
usernameとpasswordを受け取ります。
テーブル
users
id integer not null
username varchar(16)
password varchar(64)
use
use Cake\Utility\Hash;
use Cake\Auth\DefaultPasswordHasher;
$this->Users = TableRegistry::get('users');
$user = $this->Users
->find()
->where(['Users.username' => $username])
->select(['id','password'])
->toArray();
if (!empty($user)) {
$user_password = Hash::get($user, '0.password');
$user_id = Hash::get($user, '0.id');
$pass_checker = new DefaultPasswordHasher();
$pass_check = $pass_checker->check($password, $user_password);
if($pass_check) {
//パスワード一致しました!
}
}
あえてauthを使用しない方法です。