2011-06-21 55 views
2

如果我已經通過OpenID對用戶進行了身份驗證,並且他們被重定向回Magento,我該如何自動登錄它們?我所擁有的是他們的電子郵件。我錯過了什麼?通過OpenID登錄用戶到Magento

在此先感謝。

+0

請詳細說明。你是否編寫了自己的模塊,該模塊應該通過Open ID登錄用戶? – Zyava

+0

是的,我正在寫我自己的模塊。 –

+0

好吧,所以你有回調頁,登錄後用戶將被開放的id提供者重定向到哪個頁面。在這個頁面上,你有來自開放ID提供商的用戶電子郵件和身份驗證令牌。你需要附加2個表 - auth令牌和用戶ID。你的模塊應該查看這張表,如果在那裏找到了令牌 - 登錄用戶,否則創建新的客戶。您是否知道如何使用Mage_Customer_Model_Customer模型登錄客戶並創建新客戶? – Zyava

回答

1

這是回答問題如何登錄客戶,而不是最初的大問題。我決定寫在這裏,因爲代碼格式化在評論中不存在。

// $login here is customer email 
$customer = Mage::getModel('customer/customer') 
    ->setWebsiteId(Mage::app()->getStore()->getWebsiteId()) 
    ->loadByEmail($login); 

Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer) 
    ->renewSession(); 

// now redirect user to home page or do something else what you need 
+0

完美運作!非常感謝!你已經救了我幾個小時的工作! –