Вход в prestashop 1.7 через веб-сервисы

#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)

Оттуда, если они совпадают, вы адаптируете свое приложение так, как хотите.