7

私のウェブサイトのさまざまなアプリ間でユニバーサルログインを使用できることは、すばらしいユーザーエクスペリエンスになります。今のところ、私はMagentoのストアフロントとIPSボードのコミュニティを持っています。そして、それらをユーザーの1つのユニバーサルログインに統合しようとしています。

IPSボードにはさまざまなログイン方法があり、そのうちの1つは外部データベースです。これを使用すると、ユーザーの詳細を確認するために外部データベースと統合できます。

素晴らしい!そのため、IPSをMagentoのデータベースにリンクして、統一されたユーザー資格情報を取得できます。

ただし、これまでのところ、 customer_entity.emailである電子メールフィールドしか見つけることができません。

私の質問は次のとおりです。

  1. Magentoのパスワードハッシュフィールド(table.field)とは何ですか?
  2. Magentoはどのようにパスワードハッシュを生成しますか?MD5?SHA1?塩とは何ですか(インストールによって異なると思いますが、どこで見つけることができますか)?

添付の画像からわかるように、IPSがユーザーログインの詳細の外部データベースとしてMagentoのデータベースを使用できるようにするには、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 に答える