密码存储在Magento的位置和方式?

时间:2012-10-06 07:58:39

标签: magento hash passwords ipb

通过我网站的各种应用程序进行通用登录,这将是一次巨大的用户体验。现在,我有一个Magento的店面和一个IPS板的社区。我正在尝试将它们集成到我的用户的一个通用登录中。

IPS board提供了多种登录方法,其中一种是外部数据库,使我能够将其与外部数据库集成以获取用户详细信息。

优秀!因此,我可以将IPS与Magento的数据库链接起来,以获得统一的用户凭据。

但是,到目前为止,我只能找到 customer_entity.email 的电子邮件字段。

我的问题是:

  1. Magento中的密码哈希字段(table.field)是什么?
  2. Magento如何生成密码哈希? MD5? SHA1?什么是盐(我想它的安装不同但我在哪里可以找到它?)
  3. 从附图中可以看出,我需要详细了解Magento存储密码的位置和方式,以使IPS能够将Magento的数据库用作用户登录详细信息的外部数据库。

    附:

    enter image description here

    enter image description here

    非常感谢任何关于如何完成这项工作的想法或建议!

2 个答案:

答案 0 :(得分:8)

客户的密码存储在customer_entity_varchar中,它是一个eav属性。您不能使用IPB外部数据库功能。您应该使用Mage::getModel('customer/customer')->authenticate($logi, $password);对代码中的客户进行身份验证。

答案 1 :(得分:3)

您可以在/app/etc/local.xml中找到加密密钥。我没有查看用户表,但我的猜测是哈希字段是加密密码。

加密功能在Mage_Core_Model_Encryption中,因此如果您可以从IPS板访问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);

你需要找出最适合这种逻辑的地方,以便整合它,但这至少是一个开始。