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

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


Tony
 Поделиться

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

Логи ошибок пусты (стоит 3 уровень логирования)

Системный журнал:

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

1111.png.279b4c130d6cf6f6f3064b153dcb7bc7.png

222.png.6e2c28d56f1247de1190754a4e814bfd.png333.png.c4f032c33504027cbedbde2a887d0483.png

 

Ссылка на комментарий
Поделиться на других сайтах

Здравствуйте, если предоставите доступ могу посмотреть.

p.s Почитайте правила 1.7, 1.8

Ссылка на комментарий
Поделиться на других сайтах

Версии те же. Да и при новой установке 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:

Ссылка на комментарий
Поделиться на других сайтах

@qwert с регистрацией проблем нет) Проблема с авторизацией существующих пользователей. Сейчас почистил кэш - буду мониторить

  • Нравится 1
Ссылка на комментарий
Поделиться на других сайтах

@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
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

Войти

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

Войти сейчас
 Поделиться

×
×
  • Создать...
Вверх
Вверх