我正在學習Prestashop的發展。我試圖用react.js(更精確的React Native)創建一個「第三方」應用程序,並在prestashop的web服務中捕獲Json數據。但我想讓「客戶」使用他自己的賬戶和他的賬戶進行登錄。與CRUD也。是否可以通過客戶端(客戶)登錄來訪問Prestashop的Web服務而不是密鑰?
提前;非常感謝您的耐心和關注。
最好的問候。
米歇爾DIZ
我正在學習Prestashop的發展。我試圖用react.js(更精確的React Native)創建一個「第三方」應用程序,並在prestashop的web服務中捕獲Json數據。但我想讓「客戶」使用他自己的賬戶和他的賬戶進行登錄。與CRUD也。是否可以通過客戶端(客戶)登錄來訪問Prestashop的Web服務而不是密鑰?
提前;非常感謝您的耐心和關注。
最好的問候。
米歇爾DIZ
的Prestashop後臺登錄給web服務的訪問權限。必須啓用Webservices並生成密鑰。所以,我建議你改變你的「登錄」方式。客戶帳戶與Web服務無關,Web服務僅用於訪問存儲的數據Un Prestashop(更像Backoffice而不是FrontOffice)。
你到底需要做什麼?
我希望它能幫助你。
我對此有所瞭解。 我正在考慮嘗試使用Firebase身份驗證。 在我正在考慮集成我在React Native中製作的當前測試應用程序之前。然後通過Prestashop的Web服務中生成的Json來消費所有的東西。 –
在我的測試應用程序中,我正在考慮在代碼中執行一系列操作。首先使用生成的密鑰來使用Web服務,然後在通過一些實體驗證確認後過濾用戶。但是現在我想嘗試Firebase身份驗證。 –
所有Prestashop API文檔在這裏:http://doc.prestashop.com/display/PS16/Using+the+PrestaShop+Web+Service – PixelWeb
我不知道你是否仍在尋找解決方案,但實際上有一種方法。
請確保它是安全登錄。
由於您允許訪問所有prestashop數據,請確保登錄非常安全。我已經能夠用PHP
重新創建它我認爲有了一些補充,你可以按照你想要的方式重新創建它。將其作爲指導。
要使用的Prestashop Web服務創建一個登錄系統,您將需要三樣東西
通過網絡服務來爲客戶表 的COOKIE_KEY,在app/config中定義的訪問 - > parameters.php ::「cookie_key」 =>'12321test'; PHP 一些有效首先是從web服務獲取customers表。
// 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);
}
}
這是如何重現問題的工作示例。
希望這會有所幫助!
非常感謝您的回覆。目前我無法測試你的方法,因爲在此期間我徹底改變了我的堆棧。不過,我可以儘快重新測試。 如果有人拿走你的代碼並繼續。提供積極的結果我會將您的答覆標記爲解決方案。 稍後在這個問題上,我在這裏做了一個小節點GraphQL API,它作爲prestashop數據庫的「橋」直接使用,並作爲sequelize使用。但是,我不得不停下來,因爲我需要開展另一個項目。 看着它在我看來是一個很好的方法。 反正謝謝你。乾杯 –
我發現這個(但是不夠)http://stackoverflow.com/questions/28724731/how-to-integrate-prestashop-with-android/28925554?newreg=e51eb8f5ed03430f80392eef2a983df0 –
請告訴我們你有什麼迄今爲止嘗試過。堆棧溢出不是一種代碼編寫服務,但如果你至少試圖自己解決問題,人們願意幫助你。請參閱[如何創建一個最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)和[我如何提出一個好問題](http://stackoverflow.com/help/如何對問)? – sarcom
其實這只是一個問題。我不是要求爲我執行代碼。我問是否有可能,如果有人知道我在哪裏找到信息。但是我會組織一個邏輯代碼參數來看看是否有人抓住它。 最好的問候。 –