требуется веб-служба входа пользователя с помощью API prestashop

требуется веб-служба входа пользователя с помощью API prestashop

18.01.2017 01:31:57 Просмотров 38 Источник

Я работаю над веб-сервисами prestashop для моего android-приложения, я много искал в google, но не нашел надлежащего документа/надлежащего объяснения. Может ли кто-нибудь помочь мне, как сделать логин/аутентификацию пользователя с помощью веб-сервисов prestashop?.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/41716999/user-login-web-service-required-using-prestashop-api#comment102554549_41716999
На всякий случай : я столкнулся с аналогичной проблемой с вызовом API на стороне браузера и столкнулся с этим вопросом через Google. Я думаю о добавлении некоторых конечных точек api, которые отвечают только на информацию, зарегистрированную пользователем.

Ответы - требуется веб-служба входа пользователя с помощью API prestashop / user Login web service required using prestashop api

Является ответом!
Akshay kumar

18.01.2017 01:55:28

Используйте веб-сервисы PrestaShop и фильтр с электронной почтой и паролем, как показано ниже:

http://localhost/api/customers/?filter[email]=test@prestashop.com&filter[password]=19910794b7c0b413e80f58298a8d8300

https://stackoverflow.com/questions/41716999/user-login-web-service-required-using-prestashop-api/41717523#comment82790058_41717523
Я вижу много таких ответов, но любой, кто может получить доступ к ключу аутентификации, который в основном не скрыт, будет иметь доступ ко всем деталям клиентов сайта. Это решение действительно небезопасно. Доступ к списку клиентов таким образом должен осуществляться с сервера, а не с клиента.
Blesson

29.05.2018 01:52:32

Для тех, кто все еще ищет этот ответ,

<?

if (isset($_GET["email"]) && isset($_GET["password"]) )
{
$email =  $_GET["email"];
$password = $_GET["password"];

$COOKIE_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';

$jsonurl = "https://XXXXXXXXXXXXXXXXXXXX@example.com/api/customers?filter[email]=".$email."&display=[passwd]&output_format=JSON";
$json = file_get_contents($jsonurl);
$json_a = json_decode($json, true);

$loopone = $json_a['customers'];
$looptwo = $loopone[0];
$loopthree = $looptwo['passwd'];

$ZCpassword = md5($COOKIE_KEY . $password);

if (strcmp($loopthree, $ZCpassword) == 0) {
        echo "sucess";
    } else {
         echo "fail";
    }

}
else
{
    echo "Error";
}

?>
Isa Frimpong

28.05.2019 03:07:18

Вы можете позвонить в конечную точку клиента, фильтруя по электронной почте клиента. Результат будет иметь поле" passwd", которое является хэшированным паролем, который может быть либо md5, либо bcrypt, поскольку Prestashop поддерживает оба. Затем вы можете хэшировать ввод пароля клиента и сравнить его с полем "passwd" в ответе. Если длина поля "passwd" равна 32 (md5), вам понадобится параметр _COOKIE_KEY_, установленный в /app/config/parameters.php как соль для генерации вашего хэша;

Принять вызов, как это https://yourprestashopurl.com/api/customers?filter[электронной почты]=email@email.com&display=full

Для md5 (если passwd имеет длину 32 символа): $хеш = MD5 в(_COOKIE_KEY_ . $input_password); Затем вы можете сравнить $hash с passwd

Для bcrypt (если passwd имеет длину 60 символов): Вариант 1: $проверить = функцию password_verify($input_password пароль passwd); Вы можете принять $input_password, когда это возвращает true, в противном случае $input_password является недопустимым

Вариант 2: $хэш = функция password_hash($input_password, PASSWORD_BCRYPT); Затем вы можете сравнить $hash с passwd

Примечание: функция password_hash и функцию password_verify оба встроенные функции PHP, начиная с версии PHP 5.5.0

Закрыть X