Перейти к публикации
IPS Invision Community

Проблема с авторизацией пользователей


Tony
Перейти к решению Решение от Tony,

Рекомендованные сообщения

Срочно нужна помощь. Бьюсь над проблемой давно, но чувствую, что ответ на поверхности - скорее всего в настройках авторизации или констант в файле /init.php (ключи и кеш). Суть проблемы:

Переустановил форум. Точнее:

  1. Удалил форум (с бэкапом)
  2. Переустановил ОС на сервере
  3. Залил отбэкапенные файлы на субдомен (для последующей конвертации на вновь установленный форум)
  4. Установил форум заново 4.4.6 (той же версии, что и был) на прежний домен
  5. Конвертировал дынные с субдомена (прежний форум) на новый.

Форум работает, как надо. Все, вроде, настроено. НО. Пользователи не могут войти в аккаунты. Появляется ошибка неверного логина и/или пароля. Чую, что надо как-то обновить кеш и/или ключи, или еще чего-то. Заставлять пользователей обновлять историю браузера и делать  прочие манипуляции я не могу, да и не поможет (наверняка). Перечитал спецификацию по константам в /init.php, но как-то сыкотно. Помогите, пожалуйста.

Ссылка на комментарий

Версии те же. Да и при новой установке IPS проблем с совместимостью окружения не было. Проблем с общей работой форумом сейчас также не наблюдается (кроме авторизации пользователей)

Скрытый текст

PHP требования

 PHP версия 7.2.34.

 fsockopen функция доступна

 Multibyte String расширение загружено

 DOM расширение загружено

 GD расширение загружено

 MySQLi расширение загружено

 OpenSSL расширение загружено

 Session расширение загружено

 SimpleXML расширение загружено

 XML расширение загружено

 XMLReader расширение загружено

 XMLWriter расширение загружено

 Phar расширение загружено

 Zip расширение загружено

 Exif расширение загружено

 Лимит памяти 128 МБ.

Файловая система требования

 /home/admin/web/x-forum.su/public_html/applications доступна для записи

 /home/admin/web/x-forum.su/public_html/datastore доступна для записи

 /home/admin/web/x-forum.su/public_html/plugins доступна для записи

 /home/admin/web/x-forum.su/public_html/uploads доступна для записи

 /home/admin/web/x-forum.su/public_html/uploads/logs доступна для записи

MySQL требования

 MySQL версия 5.5.68-MariaDB.

Рекомендации

 У Вас не загружено PHP расширение cURL, или версия расширения ниже 7.36. Включение расширения cURL позволит установить более эффективные и надёжные соединения вашего сайта с другими сайтами.

 Системная переменная MySQL wait_timeout установлена в слишком низкое значение (10). Значение MySQL по умолчанию - 28800. Рекомендуется увеличить эту системную переменную MySQL хотя бы до 20, чтобы предотвратить возможные проблемы с таймингами запросов.

 

Ссылка на комментарий

Сори за цитату... Тестировал сначала все на дефолте - без приложений, плагинов, стилей и т.п. Проблема возникла изначально. Думаю, что проблема именно в кешировании и в ключах. Не знаю только, как ее решить. Пытался использовать хешгенератор (hashgenerator), но в моем случае он не поможет.

Ссылка на комментарий

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

 

Я попробовал зарегистрироваться «ййй» у тебя на сайте, регистрация прошла. :wakeup:

Ссылка на комментарий

@Sipsb при конвертации, значит, это поле не добавляется (как бы и не должно). Как это исправить? Где-то видел формулу md5(name_base+pass_base) - не помню только для куда она. Поправьте, пожалуйста.

Ссылка на комментарий

Если делаете штатным конвертером, то проблем быть не должно, все данные пользователей сохраняются. Импортните пользователей на прямую с бэкапа в core_members

В IPS 4.5 добавили настройку "Принудительный сброс пароля". В качестве альтернативы можно обновиться и сделать сброс.

Скрытый текст

2021-02-05_17-53-12.png

 

Ссылка на комментарий

@Sipsb "Принудительный сброс" подразумевает удаление members_pass_hash?) Это поле и так пустое) Посмотрел сейчас бэкап БД (думал, может криво отбэкапилась с пустым полем members_hash) - там все на месте. Конвертировал штатным конвертором. Не знаю, почему так получилось? При чем я делал это ни один раз... Ща вручную быстренько обновлю пустые поля. Надеюсь поможет. Отпишусь о результатах.

Ссылка на комментарий
3 минуты назад, Tony сказал:

"Принудительный сброс" подразумевает удаление members_pass_hash?)

Точно не помню

3 минуты назад, Tony сказал:

Ща вручную быстренько обновлю пустые поля.

Рекомендую полностью core_members заменить из бэкапа.

Ссылка на комментарий

@Sipsb Нельзя полностью заменить таблицу. При конвертации обновились  id-ы. Если значение members_pass_hash зависит только от данных, введенных пользователем (пароль, ник, мыло и т.п.), то проблем не должно возникнуть, просто добавлю в пустые поля соответствующее значение.

PS: вы знаете какая соль в хэшировании этого поля? (на будующее)

Ссылка на комментарий
  • Решение

Добавил вручную соответствующие данные members_pass_hash от отбэкапенной БД. Вроде все заработало.

Может пригодится, кому, кто будет самостоятельно добавлять из одной базы в другую:

//$sql1 - база, КУДА надо добавить
//$sql2 - бэкап база

$z=$sql1->query("SELECT * FROM core_members WHERE members_pass_hash IS NULL");
if($z->num_rows!=0){
    while($r=$z->fetch_array()){
        $zz=$sql2->query("SELECT * FROM core_members WHERE email='".$r['email']."'");
        if($zz->num_rows!=0){
            $rr=$zz->fetch_array();
            $sql1->query("UPDATE core_members SET members_pass_hash='".$rr['members_pass_hash']."' WHERE email='".$r['email']."'");
        }
    }
}

PS: ОГРОМНЕЙШЕЕ ВАМ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!:bravo:

  • Нравится 1
  • Спасибо 1
Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...
Вверх
Вверх