通过我网站的各种应用程序进行通用登录,这将是一次巨大的用户体验。现在,我有一个Magento的店面和一个IPS板的社区。我正在尝试将它们集成到我的用户的一个通用登录中。
IPS board提供了多种登录方法,其中一种是外部数据库,使我能够将其与外部数据库集成以获取用户详细信息。
优秀!因此,我可以将IPS与Magento的数据库链接起来,以获得统一的用户凭据。
但是,到目前为止,我只能找到 customer_entity.email 的电子邮件字段。
我的问题是:
答案 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);
你需要找出最适合这种逻辑的地方,以便整合它,但这至少是一个开始。