Использовать Ion Auth BCrypt внутри Oauth2

#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']);
}
 

Вот и все!