我必须将 PrestaShop 1.5 与预先存在的 symfony 应用程序集成。
通过网络服务,我可以使数据库保持同步,这样用户就可以在 PrestaShop 和应用软件上使用相同的数据进行登录。现在我要确保登录应用程序时,用户会自动登录 PrestaShop 平台。
你能帮助我吗?
我必须将 PrestaShop 1.5 与预先存在的 symfony 应用程序集成。
通过网络服务,我可以使数据库保持同步,这样用户就可以在 PrestaShop 和应用软件上使用相同的数据进行登录。现在我要确保登录应用程序时,用户会自动登录 PrestaShop 平台。
你能帮助我吗?
我不知道您是否仍在寻找解决方案,但实际上有一种方法。
请确保这是一个安全的登录。
由于您授予对所有 prestashop 数据的访问权限,请确保登录非常安全。我已经能够重新创建它,PHP
我认为通过一些添加,您可以按照您想要的方式重新创建它。将其视为指导方针。
要使用 prestashop 网络服务创建登录系统,您需要三件事
通过webservice访问customers表 COOKIE_KEY,定义在app/config -> parameters.php:: 'cookie_key' => '12321test'; 一些 PHP 经验 首先是从 web 服务中获取客户表。
// code placeholder
require_once('./../PSWebServiceLibrary.php');
/**
* get information from PrestaShop
*/
$webService = new PrestaShopWebservice($url, $key, $debug);
$COOKIE_KEY = 'CookieKey';
$email = $_REQUEST['email'];
$password = $_REQUEST['password'];
$optUser = array(
'resource' => 'customers',
'filter[email]' => '[' . $email . ']',
'display' => '[id,email,lastname,firstname,passwd]'
);
$resultUser = ($webService->get($optUser));
$json = json_encode($resultUser);
第二个也是最重要的事情是检查用户输入
// code placeholder
foreach ($resultUser->customers->customer as $info) {
// Prestashop uses the cookie_key in combination with a salt key. To check the password use the php function: password_verify();
$salt = substr($info->passwd, strrpos($info->passwd, ':') + 1, 2);
$ZCpassword = md5($COOKIE_KEY . $password) . ':' . $salt;
// Check if password comparison is true or false
if (password_verify($password, $info->passwd) == true) {
session_start();
$response = array();
$response['status'] = 'succes';
$response['message'] = "You did it!";
setcookie("userId", $info->id);
header('Content-type: application/json');
echo json_encode($response);
} else {
$response = array();
$response['status'] = 'error';
$response['message'] = 'Wrong password';
header('Content-type: application/json');
echo json_encode($response);
}
}
这是如何将问题重现为工作示例。
我使用的是设置 acookie
并检查它是否存在!
希望这可以帮助!