Мы в твиттере Мы в телеграме!

Провеббер » Всё для IPS » IPS модификации » Интеграция DLE 10-12 + IPS 4.2.x

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

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Интеграция DLE 10-12 + IPS 4.2.x.

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


Это небольшая инструкция по созданию общей авторизации между двумя системами - Datalife Engine и Invision Power Suite.
Данный метод будет работать только если ваши базы данных на локальном сервере и для подключения вы используете localhost, либо знаете точный адрес до базы данных - иначе не сработает.

Версия DLE: 10.х, 11.х, 12.х
Версия IPS: 4.2

Что может эта интеграция?
Если есть пользователь в базе данных DLE, то система IPS авторизует его без проблем
IPS создаёт пользователя на основе данных в базе DLE
Работает односторонне


Инструкция:

Открываем админку 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);


Сохраняем

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

Автор: Maxim Harder, Celsoft

Missing update?
Checkout our NULLED Web Community


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


0
Просмотры: 4 890 :: Комментарии (3) :: :: Нужна помощь? Задайте вопрос на форуме ::
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1mondolfo

  • 11 марта 2018 01:14
  • Регистрация: 26.11.2010
  • Был(а) онлайн: 13.03.2023
  • Комментариев: 53
  • 0
version 12.1 this method working

Find:

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


Change to:

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


Find:

return md5( $password );


Change to:

return password_hash($password, PASSWORD_DEFAULT);

#2Min-a-Gon

  • 13 августа 2018 19:53
  • Регистрация: 29.06.2013
  • Был(а) онлайн: 31.05.2021
  • Комментариев: 1
  • -1
mondolfo, ty very much!!! =) ur method is working on DLE 11.2

#3Maksim

  • 12 марта 2021 14:20
  • Регистрация: 27.12.2009
  • Был(а) онлайн: 25.03.2024
  • Комментариев: 191
  • 0
Я, кстати, у себя на форуме публиковал и для IPS версий 4.4.4 и выше, там подключение отличается

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Апрель 2024 (9)
Март 2024 (18)
Февраль 2024 (27)
Январь 2024 (12)
Декабрь 2023 (13)
Ноябрь 2023 (45)
Друзья сайта

Последние комментарии: