我正在为我的Android应用程序工作prestashop网络服务,我在谷歌搜索了很多,但我没有找到适当的文件/正确的解释。任何人都可以指导我如何使用prestashop Web服务进行用户登录/身份验证?
答案 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_hash和password_verify都是自PHP 5.5.0起内置的php函数。
答案 1 :(得分:0)
使用PrestaShop网络服务并使用以下电子邮件和密码进行过滤:
答案 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";
}
?>