#php #oauth-2.0 #bcrypt #codeigniter-4 #ion-auth
#php #oauth-2.0 #bcrypt #codeigniter-4 #ion-auth
Вопрос:
Я разрабатываю API с использованием CodeIgniter 4 и OAuth2. У меня есть существующая база данных, которую мне нужно использовать, но веб-приложение создано на CodeIgniter 3, и я использовал Ion Auth для аутентификации. Как я могу сравнить заданный пользователем пароль с эквивалентным паролем в базе данных, используя функцию проверки пароля Ion Auth? Или есть способ, которым я могу сравнивать пароли вообще без Ion Auth?
Фрагмент кода, который мне нужно изменить в OAuth2, находится в OAuth2StoragePdo.php
:
protected function checkPassword($user, $password)
{
return $user['password'] == $this->hashPassword($password);
}
// use a secure hashing algorithm when storing passwords. Override this for your application
protected function hashPassword($password)
{
return sha1($password);
}
Я не уверен, как я могу это сделать. В худшем случае я вернусь к CI3 и создам другой API.
Любая помощь приветствуется.
Ответ №1:
Я заменил checkPassword
функцию на это:
protected function checkPassword($user, $password)
{
//return $user['password'] == $this->hashPassword($password);
return password_verify($password, $user['password']);
}
Вот и все!