2012-10-06 9 views
7

यह एक जबरदस्त उपयोगकर्ता अनुभव होगा जो मेरी वेबसाइट के विभिन्न ऐप्स में सार्वभौमिक लॉगिन करने के लिए आशीर्वाद देगा। अभी के लिए, मेरे पास Magento का एक स्टोरफ्रंट और आईपीएस बोर्ड का एक समुदाय है। और मैं उन्हें अपने उपयोगकर्ताओं के लिए एक सार्वभौमिक लॉगिन में एकीकृत करने की कोशिश कर रहा हूं।Magento में पासवर्ड कहां और कैसे संग्रहीत हैं?

आईपीएस बोर्ड विभिन्न प्रकार के लॉगिन विधियों की पेशकश करता है और उनमें से एक बाहरी डेटाबेस है जो मुझे उपयोगकर्ता विवरण के लिए बाहरी डेटाबेस के साथ एकीकृत करने में सक्षम बनाता है।

शानदार! तो मैं एकीकृत उपयोगकर्ता प्रमाण-पत्रों के लिए Magento के डेटाबेस के साथ आईपीएस को लिंक कर सकता हूं।

हालांकि, अब तक मुझे केवल ईमेल फ़ील्ड मिल सकता है जो ग्राहक_entity.email है।

मेरे प्रश्न हैं:

  1. क्या Magento में पासवर्ड हैश क्षेत्र (table.field) क्या है?
  2. Magento पासवर्ड हैश कैसे उत्पन्न करता है? MD5? SHA1? नमक क्या है (मुझे लगता है कि यह स्थापना द्वारा अलग है लेकिन मुझे यह कहां मिल सकता है)?

आप संलग्न चित्र से देख सकते हैं, मैं उपयोगकर्ता लॉगिन जानकारी के लिए बाहरी डेटाबेस के रूप में Magento के डेटाबेस का उपयोग करने आईपीएस सक्षम करने के लिए की कहाँ और कैसे Magento पासवर्ड संग्रहीत करता है विवरण की जरूरत है।

अटैच किया गया:

enter image description here

enter image description here

किसी भी विचार या कैसे इस करवाने के लिए पर सुझाव बहुत सराहना की जाएगी!

+0

अच्छा स्पष्टीकरण http://www.magentogarden.com/blog/how-are-passwords-encrypted-in-magento.html – pevik

उत्तर

8

ग्राहक का पासवर्ड customer_entity_varchar में संग्रहीत है, यह एक ईव विशेषता है। आप आईपीबी बाहरी डेटाबेस कार्यक्षमता का उपयोग नहीं कर सकते हैं। आपको अपने कोड में ग्राहकों को प्रमाणीकृत करने के लिए Mage::getModel('customer/customer')->authenticate($logi, $password); का उपयोग करना चाहिए।

+1

सबसे आसान तरीका Magento घटनाओं का उपयोग करना है ग्राहक_customer_authenticated और ग्राहक_register_success लॉगिन/पंजीकरण कार्यों को हुक करने और आईपीबी से कस्टम क्वेरी जोड़ने के लिए। आप आईपीबी के एपीआई का उपयोग करने के लिए ऑटोलोड का उपयोग कर सकते हैं या बस कस्टम मॉडल बना सकते हैं और बोसर्ड के डेटाबेस में डेटा ट्रांसफर कर सकते हैं। एक और तरीका जटिल सिस्टम डेटाबेस सिस्टम को सभी सिस्टम के लिए एक उपयोगकर्ता इकाई के साथ बनाना है। किसी भी तरह से मानक एकीकरण उपकरण ज्यादा मदद नहीं करेगा।डिफ़ॉल्ट पासवर्ड से एमडी 5 ('saltpassword') के रूप में उत्पन्न होता है। 'नमक' सीई संस्करण के लिए। नमक 2 यादृच्छिक अल्फान्यूमेरिक वर्ण हैं। –

3

आप /app/etc/local.xml में एन्क्रिप्शन कुंजी पा सकते हैं। मैंने उपयोगकर्ता तालिका को नहीं देखा है, लेकिन मेरा अनुमान हैश फ़ील्ड एन्क्रिप्टेड पासवर्ड है।

एन्क्रिप्शन कार्यक्षमता Mage_Core_Model_Encryption में है तो आप अपने आईपीएस बोर्ड से Magento में पहुँच प्राप्त कर सकते हैं, आप के लिए कुछ इसी तरह कर सकता है:

$password = 'whatever'; //your logic provides this password 

require_once('app/Mage.php'); //path to your Magento app/Mage.php 
Mage::app(); //we can now use magento functionality 

$decrypted = Mage::getModel('core/encryption')->decrypt($password); 

जहां सबसे अच्छा में इस तर्क डाल करने के लिए आप बाहर काम करने की आवश्यकता होगी इसे एकीकृत करने के लिए आदेश, लेकिन यह कम से कम एक शुरुआत है।

+2

में है, तो आप ग्राहक के पासवर्ड को डिक्रिप्ट करने में सक्षम नहीं होंगे (डिफ़ॉल्ट रूप से md5 ईई संस्करणों में सीई और एसएचए 1 में)। ऑर्डर, एपीआई कुंजी और तीसरे भाग एकीकरण पासवर्ड में महत्वपूर्ण डेटा एन्क्रिप्ट करने के लिए एन्क्रिप्शन कुंजी का उपयोग किया जाता है। –

संबंधित मुद्दे