Я новичок в php и работаю над REST API в cakephp3 для моего приложения для Android.
после настройки php и композитор и маршрутизация, которую я создал функция входа в систему ..
public function login() {
$this->request->allowMethod('post');
$this->loadModel('Users');
$entity = $this->Users->newEntity($this->request->data, ['validate' => 'LoginApi']);
if ($entity->errors()) {
$this->httpStatusCode = 400;
$this->apiResponse['message'] = 'Validation failed.';
foreach ($entity->errors() as $field => $validationMessage) {
$this->apiResponse['error'][$field] = $validationMessage[key($validationMessage)];
}
} else {
$hasher = new DefaultPasswordHasher();
$password = $hasher->hash($entity->password);
$user = $this->Users->find()
->where([
'email' => $entity->email,
'password' => $password
])
->first();
if (empty($user)) {
$this->httpStatusCode = 403;
$this->apiResponse['error'] = 'Invalid email or password.';
return;
}
$payload = ['email' => $user->email, 'name' => $user->name];
$this->apiResponse['token'] = JwtToken::generateToken($payload);
$this->apiResponse['message'] = 'Logged in successfully.';
isset($user);
isset($payload);
}
}
Я использую 123456 для пароль и это hasher возвращает случайную строку каждый раз, но пароль, который уже сохранен в базе данных для 123456 , равен $ 2y $ 10 $ f7K02jamD7ZeGHLcTkP6Weh6VsthMWHiwqHJmcqbsxuLCKGCQCGCu
1025 *.почему он дает неверный пароль в ответ.
Мой вопрос заключается в том, как сопоставить одну и ту же строку или хеширование для запроса.заранее спасибо.