用户使用prestashop api登录Web服务

时间:2017-01-18 10:31:58

标签: api authentication login prestashop

我正在为我的Android应用程序工作prestashop网络服务,我在谷歌搜索了很多,但我没有找到适当的文件/正确的解释。任何人都可以指导我如何使用prestashop Web服务进行用户登录/身份验证?

3 个答案:

答案 0 :(得分:2)

您可以通过客户的电子邮件致电客户端点筛选。结果将有一个“ passwd”字段,这是一个哈希密码,因为Prestashop支持这两者,所以可以是md5或bcrypt。然后,您可以对客户的密码输入进行哈希处理,并与响应中的“ passwd”字段进行比较。如果“ passwd”字段的长度为32(md5),则需要在/app/config/parameters.php中设置参数_COOKIE_KEY_作为盐来生成哈希;

像这样https://yourprestashopurl.com/api/customers?filter[email]=email@email.com&display=full

进行通话

对于md5(如果passwd为32个字符长): $ hash = md5(_COOKIE_KEY_。$ input_password); 然后,您可以将$ hash与passwd进行比较

对于bcrypt(如果passwd为60个字符长): 选项1: $ verify = password_verify($ input_password,passwd); 当此参数返回true时,您可以接受$ input_password,否则$ input_password无效

选项2: $ hash = password_hash($ input_password,PASSWORD_BCRYPT); 然后,您可以将$ hash与passwd进行比较

注意:password_hashpassword_verify都是自PHP 5.5.0起内置的php函数。

答案 1 :(得分:0)

使用PrestaShop网络服务并使用以下电子邮件和密码进行过滤:

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

答案 2 :(得分:0)

对于仍在寻找此答案的人,

<?

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";
}

?>