1
A
回答
2
經過多次試驗和錯誤,我創建了以下工作。這是基於登錄由Magento以外的平臺管理的情況。
我無法找到與Magento之外初始化的Magento共享會話的方法。相反,我創建了一個簡單的Magento擴展,該擴展掛鉤到事件觀察者'http_response_send_before'。
現在每當Magento加載頁面時,模塊都會檢查用戶是否登錄到其他系統。如果是這樣,它將檢索該用戶的電子郵件,並使用電子郵件地址作爲標識將用戶登錄到Magento,併爲該客戶設置會話。很明顯,客戶必須已經存在於Magento中才能登錄工作。
這裏是包含的文件和代碼。隨意修改以與您的系統一起工作。
/app/code/local/Verve/Session/etc/config.xml
<config>
<modules>
<Verve_Session>
<version>0.5.1</version>
</Verve_Session>
</modules>
<frontend>
<events>
<http_response_send_before>
<observers>
<session_login>
<type>model</type>
<class>Verve_Session_Helper_Login</class>
<method>loginEvent</method>
</session_login>
</observers>
</http_response_send_before>
</events>
</frontend>
/app/code/local/Verve/Session/Helper/Login.php
class Verve_Session_Helper_Login extends Mage_Core_Helper_Abstract
{
static function loginEvent($observer) {
$session = Mage::getSingleton('customer/session');
if (!$session->isLoggedIn()) {
YOUR CODE HERE, FIND EMAIL OF LOGGED IN USER
if(@$email){
$customer = Mage::getModel('customer/customer');
$customer->loadByEmail($email);
$session = Mage::getSingleton('customer/session');
$session->start();
$session->setCustomer($customer);
$url = $_SERVER['REQUEST_URI'];
Mage::app()->getFrontController()->getResponse()->setRedirect($url);
}
}
}
}
/app/etc/modules/Verve_Session.xml
<config>
<modules>
<Verve_Session>
<active>true</active>
<codePool>local</codePool>
</Verve_Session>
</modules>
</config>
+0
做得好的Komra!謝謝......但 可以解釋我如何「檢查,看用戶是否登錄到其他系統」? 來自Symfony的API? – 2011-01-25 19:48:24
相關問題
- 1. 不同用戶/會話之間的php共享變量
- 2. 在Rails和Symfony應用程序之間共享會話?
- 3. 在asp.net和java之間共享會話變量
- 4. 在asp.net和vb6之間共享會話變量
- 5. 在Ruby和PHP之間共享會話
- 6. 在php和jsp之間共享會話
- 7. 在cakephp和moodle之間共享用戶登錄/會話
- 8. PHP在子域之間共享會話變量
- 9. 在多個php腳本之間共享會話變量
- 10. 應用程序和共享會話之間的共享DLL
- 11. 在PowerShell和C#之間共享變量
- 12. 在python和php之間共享變量
- 13. 在C#和C++之間共享變量
- 14. 在less和coffeescript之間共享變量?
- 15. 在WordPress和CodeIgniter之間共享變量
- 16. 在C#和C之間共享變量
- 17. 有Coldfusion和asp.net共享會話變量
- 18. 在WCF和Silverlight Http客戶端之間共享ASP.NET會話ID
- 19. 我如何在回傳和不使用會話之間共享變量值
- 20. 在Vaadin和嵌入式應用程序之間共享會話變量
- 21. CGI ::客戶端之間的會話共享會話!
- 22. 在多個WKWebView之間共享會話
- 23. 與CakePHP共享Magento會話
- 24. wxpython和類之間共享變量
- 25. 在多個域之間共享用戶會話
- 26. 在Rails中阻止惡意用戶之間的會話共享
- 27. 爲什麼Rails在用戶會話之間共享代碼?
- 28. 是否有可能在servlets/jsp和javascript函數之間共享會話變量?
- 29. 在多個會話中共享變量
- 30. 我可以使用php會話在多個客戶端之間共享會話變量嗎?
會議是這些日子裏有一個模糊的詞彙。您可能想要添加更多詳細信息。 – 2010-06-17 16:44:08
嗯,我想實現的是,一個登錄用戶在系統的兩個部分被識別 – spacemonkey 2010-06-17 17:42:43