2013-05-30 187 views
3

我正在構建一個小型Web服務代碼,以便我需要使用magento客戶登錄。但無法創建會話。如果我從核心/會話創建會話,則所有用戶的瀏覽器都保持不變。如何使用magento以外的會話爲客戶登錄創建會話

問題1: 存儲在數據庫中的會話在哪裏?

問題2: 如何創建客戶/會話,然後使用相同的會話ID在不同的位置獲取?

使用這種方法,但是這是一個核心,我需要知道客戶是登錄或不會話ID:

$session = Mage::getSingleton("core/session", array("name"=>"mobiledevice")); 

這使瀏覽器會話ID而不是客戶

$session->getEncryptedSessionId() 
+0

您想CUSTOMER_ID或客戶SESSION_ID? – Mufaddal

+0

@Mufaddal我們可以同時得到兩個.. –

+0

更好問問http://magento.stackexchange.com/ – Mufaddal

回答

1

會話存儲在數據庫會話表或類似的東西中,或者更常見的是在var/session中。取決於安裝。

Login user programmatically in magento not working properly?

告訴你如何登錄有人進Magento的Magento的的 「外部」。我確實認爲鏈接中的答案缺失:

Mage::app('mysite'); 

運行代碼之前。因此,像這樣:

Mage::app('mysite'); 
$session = Mage::getSingleton('customer/session'); 
try 
    { 
     $session->login($email, $password); 
     $session->setCustomerAsLoggedIn($session->getCustomer()); 
     return true; 
    } 
    catch(Exception $e) 
    { 
     //error handling code 
    } 

創建用戶看這裏: http://inchoo.net/ecommerce/magento/programming-magento/programatically-create-customer-and-order-in-magento-with-full-blown-one-page-checkout-process-under-the-hood/

+0

先生登錄完成但現在無法檢查用戶是否登錄。因爲session.php文件上的客戶會話ID是不同的 –

+1

如何: '法師::幫手('客戶') - > isLoggedIn()' – aledujke

+0

先生我試過這個: $ session = Mage :: getSingleton 「customer/session」,array('name'=>'mobiledevice')); $ session-> login($ email,$ password); $ custData = $ session-> getCustomer() - > getData(); $ session-> setCustomerAsLoggedIn($ session-> getCustomer()); $ session-> start(); 但我剛剛看到我的會話未創建 –