2013-11-14 2 views
2

PrestaShop 1.5를 기존 symfony 응용 프로그램과 통합해야합니다.prestashop 사용자 로그인 통합

웹 서비스를 통해 데이터베이스를 동기화하여 사용자가 PrestaShop 및 응용 프로그램 소프트웨어에서 동일한 데이터로 로그인 할 수 있습니다. 이제 응용 프로그램에 로그인하고 사용자가 PrestaShop 플랫폼에 자동으로 로그인되도록하고 싶습니다.

도와 주시겠습니까?

+0

안녕하세요, Prestashop 1.4 또는 1.5? –

+0

1.5 감사합니다. –

+0

이전 질문은 확실하지만 한 번쯤은 살펴볼 수 있습니다. https://github.com/hparfr/prestashopBridge – PatrickS

답변

1

아직 솔루션을 찾고 있는지 알 수는 있지만 실제로 방법이 있습니다.

안전한 로그인 정보를 확인하십시오.

모든 사전 정지 데이터에 대한 액세스 권한을 부여하므로 로그인이 매우 안전합니다. PHP으로 다시 만들 수있었습니다. 몇 가지 추가 사항을 추가하면 원하는대로 다시 만들 수 있다고 생각합니다. 그것을 지침으로보십시오.

는 세 가지 응용 프로그램/설정에 정의 된 고객 테이블 COOKIE_KEY에 웹 서비스를 통해

액세스

을해야하는 PrestaShop 버전의 웹 서비스를 사용하여 로그인 시스템을 만들려면 -> parameters.php :: 'cookie_key' => '12321 테스트'; PHP를 사용하여 일부 공개 먼저 웹 서비스에서 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); 
    } 
} 

을 확인하는 것입니다.

내가 사용한 것은 cookie을 설정하고 존재하는지 확인하는 것입니다.

희망이 도움이됩니다.