2012-10-06 20 views
7

Web sitemdeki çeşitli uygulamalarda evrensel bir girişe sahip olmanın müthiş bir kullanıcı deneyimi olacaktır. Şimdilik, Magento'nun bir mağazası ve IPS yönetim kurulu topluluğu var. Ve bunları kullanıcılarım için tek bir evrensel girişe entegre etmeye çalışıyorum.Magento'da nerede ve nasıl şifreler saklanır?

IPS panosu çeşitli giriş yöntemleri sunar ve bunlardan biri, kullanıcı detayları için harici bir veritabanıyla entegre etmemi sağlayan Dış Veri Tabanı'dır.

Harika! Böylece IPS'yi birleştirilmiş kullanıcı kimlik bilgileri için Magento'nun veritabanına bağlayabilirim. Ancak, şu ana kadar sadece customer_entity.email e-posta alanını bulabilirim.

Sorularım şunlardır:

  1. şifre karma alan (table.field) Magento nedir?
  2. Magento parola karması nasıl oluşturur? MD5? SHA1? Tuz nedir (sanırım montajdan farklıdır ama nerede bulabilirim)? Ekli resimlerden görebileceğiniz gibi

, ben kullanıcı giriş detaylar için harici veritabanı olarak Magento'nın veritabanını kullanmak için IPS etkinleştirmek için Magento parolasını sakladığı nerede ve nasıl ayrıntılarını gerekir.

Ekli:

enter image description here

enter image description here

bu halletmek konusunda herhangi bir fikir veya öneri büyük takdir!

+0

http://www.magentogarden.com/blog/how-are-passwords-encrypted-in-magento.html – pevik

cevap

8

Müşterinin parolası customer_entity_varchar numaralı telefona kaydedilmiştir, bu bir eav niteliğidir. IPB harici veritabanı işlevselliğini kullanamazsınız. Kodunuzdaki müşterileri doğrulamak için Mage::getModel('customer/customer')->authenticate($logi, $password); kullanmalısınız.

+1

en kolay yol, müşteri oturum açma/kaydetme eylemleri yapmak ve IPB'den özel sorgular eklemek için customer_customer_authenticated ve customer_register_success magento olaylarını kullanmanın en kolay yoludur. IPB'nin API'sini kullanmak için otomatik yüklemeyi kullanabilir veya sadece özel model oluşturabilir ve verileri bosrd'un veritabanına aktarabilirsiniz. Diğer bir yol, tüm sistemler için tek bir kullanıcı varlığı ile karmaşık bir veritabanı giriş sistemi yapmaktır. Herhangi bir şekilde standart entegrasyon araçları pek yardımcı olmaz.Varsayılan olarak parola, md5 ('saltpassword'). ': Tuz' için CE sürümü olarak üretilir. Tuz 2 rastgele alfasayısal karakterdir. –

3

Sen /app/etc/local.xml şifreleme anahtarını bulabilirsiniz. Kullanıcı tablosuna bakmadım ama tahminim karma alanın şifrelenmiş şifresi olması. iyi de bu mantığı koymak için nerede çalışmak gerekir

$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); 

:

Şifreleme işlevi size IPS kurulu Magento erişebilir eğer öyleyse, benzer bir şey yapabileceğini Mage_Core_Model_Encryption içindedir entegre etmek için sipariş, ama en azından bir başlangıç.

+2

'da güzel bir açıklama var. Müşterinin parolasını karmaşa olarak çözemezsiniz (varsayılan olarak md5 EE versiyonlarında CE ve SHA1). Şifreleme anahtarı, siparişlerdeki, api tuşlarındaki ve üçüncü bölüm entegrasyon şifrelerindeki önemli verileri şifrelemek için kullanılır. –

İlgili konular