DLE — Хак интеграции DLE с IPS 4.2.x
Распечатать

DLE — Хак интеграции DLE с IPS 4.2.x

DLE — Хак интеграции DLE с IPS 4.2.x
Версия DLE: 10.х, 11.х, 12.х
Версия IPS: 4.2

Хак интеграция DLE с IPS 4.2.x., инструкция для создания общею авторизацию с форумом Invision Power Suite и Datalife Engine.

Что даст вам эта интеграция? Главным образом использовать совместно базу двух систем для мгновенной авторизации пользователей и сайта и веб-форума. Хак DLE интеграции с IPS 4.2.x будет работать только, если ваши базы данных на локальном сервере и при подключении вы применяете localhost, то есть вам доступен точный адрес до базы данных - иначе работать не будет.

При наличие пользователя в базе данных DLE, то в системе IPS, он сможет без проблем авторизоваться, и не нужно проходить повторную авторизацию.

При этом в системе IPS создаётся пользователь со всеми данными из базе сайта Datalife Engine. Работает односторонне.

Инструкция:
Открываем админку IPS и переходим в управление авторизацией: (на примере IPS v4.2.5)

Интеграция DLE 10-12 + IPS 4.2.x

Активируем внешнюю авторизацию в админке IPS. Если вас не перенесло автоматически, то нажмите на карандаш справа. Заполняем данные базы данных, где находится DLE.

Интеграция DLE 10-12 + IPS 4.2.x

Детали схемы базы данных:
  • Заполняем
  • Таблица: *ваш префикс*_users
  • Колонка имён пользователей: name
  • Колонка Email адресов: email
  • Колонка паролей: password
  • Тип шифрования паролей: Если у вас версия DLE 11.1 и меньше - берём значение MD5, если больше - Обычный текст
  • Дело в том, что начиная с версии 11.2 в DLE сменился хеш паролей и MD5 более не подходит. Мы всё подправим в файле внешней авторизации. Посему - можете спокойно обновлять DLE.
  • Дополнительное условие: banned<>1
  • Этот параметр не даст забанненым пользователям авторизоваться на форуме
  • Сохраняем

Открываем файл форум/system/Login/External.php
Ищем строчку (похожую)
if ( !\IPS\Login::compareHashes( $this->encryptedPassword( $values['password'] ), $result[ $this->settings['db_col_pass'] ] ) )
{
throw new \IPS\Login\Exception( 'login_err_bad_password', \IPS\Login\Exception::BAD_PASSWORD, NULL, $member );
}
Выше(!) ставим:
switch ( $this->settings['db_encryption'] )
{
case 'plaintext':
if(!password_verify($values['password'], $result[ $this->settings['db_col_pass'] ] ) ) {
throw new \IPS\Login\Exception( 'login_err_bad_password', \IPS\Login\Exception::BAD_PASSWORD, NULL, $member );
}

default:
и ниже
}
Ищем:
return md5( $password );
меняем на
return md5( md5( $password ) );
Ищем:
return $password;
меняем на
return password_hash($password, PASSWORD_DEFAULT);
Сохраняем

Установка закончена!

CMS: DLE

Категория: Модули

Автор: Неизвестен

Опубликовал: Дмитрий


Дополнительные Скриншоты - DLE — Хак интеграции DLE с IPS 4.2.x

Подождите, сейчас файл будет подготовлен, через
секунд Вы получите ссылку на скачивание,
а сейчас может Зарегистрируемся? wink это быстро!

Имя:*
E-Mail:
Кликните на изображение чтобы обновить код, если он неразборчив

Copyright © 2023 | Проект GiG-LiFe.ru
Материалы на этом сайте взяты из общедоступных источников и могут быть удалены по просьбе авторов, при наличии доказательства авторства.
Materials on this site are taken from public sources and may be deleted at the request of their authors when there is evidence of authorship.