Совместное использование логина и пароля для личного проекта в магазине osCommerce - PullRequest
0 голосов
/ 01 июня 2011

Я интегрирую приложение с корзиной покупок osCommerce и хочу, чтобы пользователи могли входить в приложение с теми же данными учетной записи, что и с osCommerce.

Все работает нормально, но я застрял в системе входа пользователя. Мне нужно знать, как сопоставить введенный пользователем пароль в моем приложении с учетными данными пользователя osCommerce. Они используют комбинацию MD5 и соли для генерации пароля.

Как я могу использовать этот метод для проверки пароля моего пользователя?

1 Ответ

1 голос
/ 02 июня 2011

Чтобы проверить пароль, сохраненный в osCommerce, просто используйте функцию osCommerce, которая проверяет попытку против пароля, сохраненного в базе данных. Вы найдете эту функцию в следующем:

каталог / включает / функции / password_funcs.php

////
// This funstion validates a plain text password with an encrpyted password
function tep_validate_password($plain, $encrypted) {
  if (tep_not_null($plain) && tep_not_null($encrypted)) {
    // split apart the hash / salt
    $stack = explode(':', $encrypted);  

    if (sizeof($stack) != 2) return false;

    if (md5($stack[1] . $plain) == $stack[0]) {
      return true;
    }
  }
  return false;
}

Таким образом, все, что вам нужно сделать, это извлечь столбец пароля из таблицы клиентов на основе введенного им адреса электронной почты и сравнить.

tep_validate_password(password_attempt, password_from_osC)

Если вы просто собираетесь включить его, убедитесь, что вы также включили файл catalog / includes / functions / general.php , поскольку именно здесь определена функция tep_not_null.

...