2012-10-06 47 views
7

Sería una tremenda experiencia para el usuario bendecir tener un inicio de sesión universal a través de varias aplicaciones de mi sitio web. Por ahora, tengo una tienda de Magento y una comunidad de pizarra IPS. Y estoy tratando de integrarlos en un inicio de sesión universal para mis usuarios.¿Dónde y cómo se almacenan las contraseñas en Magento?

IPS board ofrece una variedad de métodos de inicio de sesión y uno de ellos es External Database que me permite integrarlo con una base de datos externa para los detalles del usuario.

¡Fantástico! Así que puedo vincular IPS con la base de datos de Magento para credenciales de usuario unificadas.

Sin embargo, hasta ahora solo puedo encontrar el campo de correo electrónico que es customer_entity.email.

Mis preguntas son:

  1. ¿Cuál es el campo de la contraseña de hash (tabla.campo) en Magento?
  2. ¿Cómo genera Magento hash de contraseñas? MD5? SHA1? ¿Cuál es la sal (supongo que es diferente según la instalación pero dónde puedo encontrarla)?

Como se puede ver en las imágenes adjuntas, necesito los detalles de dónde y cómo Magento almacena la contraseña para permitir a IPS utilizar la base de datos de Magento como base de datos externa para los datos de acceso del usuario.

Attached:

enter image description here

enter image description here

Cualquier idea o sugerencia sobre cómo hacer esto sería muy apreciada!

+0

Buena explicación está en http://www.magentogarden.com/blog/how-are-passwords-encrypted-in-magento.html – pevik

Respuesta

8

La contraseña del cliente se almacena en customer_entity_varchar, es un atributo eav. No puede usar la funcionalidad de la base de datos externa de IPB. Debe usar Mage::getModel('customer/customer')->authenticate($logi, $password); para autenticar clientes en su código.

+1

la manera más fácil es utilizar eventos magento customer_customer_authenticated y customer_register_success para enlazar acciones de inicio de sesión/registro y agregar consultas personalizadas de IPB. Puede usar la carga automática para usar la API de IPB o simplemente crear un modelo personalizado y transferir datos a la base de datos de bosrd. Otra forma es complicar el sistema de inicio de sesión de una base de datos con una entidad de usuario para todos los sistemas. De cualquier forma, las herramientas de integración estándar no ayudarán mucho.Por defecto, la contraseña se genera como md5 ('saltpassword'). ': Salt' para la versión CE. Salt es 2 caracteres alfanuméricos aleatorios. –

3

Puede encontrar la clave de cifrado en /app/etc/local.xml. No he mirado la tabla de usuarios, pero creo que el campo de hash es la contraseña encriptada.

funcionalidad de cifrado está en Mage_Core_Model_Encryption lo que si puede acceder a Magento de su tablero IPS, se podría hacer algo similar a:

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

Tendrá que averiguar dónde mejor para poner en esta lógica para integrarlo, pero es un comienzo al menos.

+2

No podrá descifrar la contraseña del cliente, ya que es hash (por defecto md5 en CE y SHA1 en versiones EE). La clave de encriptación se utiliza para cifrar datos importantes en pedidos, claves de API y contraseñas de integración de terceros. –

Cuestiones relacionadas