#web-services #authentication #ionic4 #prestashop-1.7 #password-encryption
#веб-сервисы #аутентификация #ionic4 #prestashop-1.7 #пароль-шифрование
Вопрос:
Новичок в Prestashop здесь. Я создаю ионное приложение с prestashop 1.7.
TL; DR:
Я не могу использовать то же шифрование, что и Prestashop 1.7, для сравнения пароля пользователя приложения с зашифрованным паролем из базы данных
Подробные сведения:
Таким образом, prestashop не предоставляет надлежащего способа входа в систему (слово для входа даже не упоминается в документации). Я подумываю о том, чтобы отправить клиенту введенный адрес электронной почты (api / customers /?filter[email]=INPUT_EMAIL), а затем зашифровать INPUT_PASSWORD, зашифрованный с помощью атрибута «passwd» из api. Проблема в том, что я не могу применить то же шифрование, что и Prestashop (они никогда не будут совпадать, даже если пароль правильный)
PS:
Я пытался md5(COOKIE_KEY INPUT_PASSWORD)
, но все равно не то, что нужно
Ответ №1:
Немного поздно, но я уверен, что другие люди столкнутся с этим. Я выполнил ту же процедуру, что и в вопросе: получить информацию о клиенте и сопоставить пароли. Prestashop 1.6, по-видимому, использовал md5, но PS 1.7 использует bcrypt, поэтому вам необходимо:
Получите пакет bcryptjs (я использую angular, для nodejs есть пакет bcrypt).
Изменить заменить $2y$
на $2a$
(первый используется PHP bcrypt, второй — Javascript).
Сравните хэш с введенным паролем bcrypt.compare(INPUT_PASSWORD, pwd)
Оттуда, если они совпадают, вы адаптируете свое приложение так, как хотите.