7

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

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

极好的!所以我可以将 IPS 与 Magento 的数据库链接起来,以获得统一的用户凭据。

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

我的问题是:

  1. Magento 中的密码哈希字段(table.field)是什么?
  2. Magento 如何生成密码哈希?MD5?沙1?什么是盐(我猜它因安装而异,但我在哪里可以找到它)?

正如您从所附图片中看到的,我需要 Magento 存储密码的位置和方式的详细信息,以使 IPS 能够将 Magento 的数据库用作用户登录详细信息的外部数据库。

随附的:

在此处输入图像描述

在此处输入图像描述

任何关于如何完成这项工作的想法或建议将不胜感激!

4

2 回答 2

8

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

于 2012-10-07T00:16:07.997 回答
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);

你需要找出最好的地方放置这个逻辑以便集成它,但这至少是一个开始。

于 2012-10-06T08:34:05.707 回答