Перейти к содержимому

MixAuth

Гибридный мод авторизации для серверов NeoForge в офлайн-режиме, поддерживающий как онлайн-вход (премиум Mojang), так и офлайн-вход (по паролю).

NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
1 тыс.
Подписчиков на Modrinth
1
версий
16
Обновлён
28 сентября 202628 сент.
Опубликован
в 2026

Коротко о моде

Работает на NeoForge
Для Minecraft 1.21.11, 26.1.2–26.3 …
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.3.3 от 28 сентября 2026
Лицензия LGPL-3.0-only — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

Версии игры1.21.8, 1.21.11, 26.1.2–26.3 …
Описание переведено автоматическиПоказать оригинал (EN)

Offline-Mode Login Mod

Добавляет авторизацию по логину на серверы NeoForge, работающие в офлайн-режиме.

Основные возможности:

  • Автоматически различает премиум- и офлайн-игроков.
  • Авторизует премиум-игроков через Mojang, даже на сервере в офлайн-режиме.
  • Офлайн-игроки должны зарегистрироваться или войти, прежде чем смогут двигаться, взаимодействовать, писать в чат или видеть свой настоящий инвентарь.

Возможности

1. Автоматический выбор режима входа

  • Когда игрок заходит впервые, мод автоматически определяет, использовать онлайн- или офлайн-режим, и записывает результат в список известных игроков.
  • При последующих входах мод выбирает режим входа на основе этого списка. Премиум-игроки проходят авторизацию во время рукопожатия, а офлайн-игроки регистрируются или входят на сервере.
  • Администраторы могут использовать auth remove <UUID|username>, чтобы удалить все сохранённые данные игрока: запись в списке известных игроков, офлайн-пароль, записи о банах и записи о входе без пароля. При следующем входе мод будет считать его новым игроком.

2. Авторизация премиум-игроков

  • Во время входа мод запускает рукопожатие в онлайн-режиме и проверяет сессию игрока через Mojang.
  • После проверки игрок заходит под своей авторизованной учётной записью, как на сервере в онлайн-режиме.
  • Авторизованные премиум-игроки используют свой UUID из онлайн-режима вместо UUID, сгенерированного сервером в офлайн-режиме. Это позволяет корректно работать модам, которые полагаются на UUID онлайн-режима, таким как Figura и FTB Chunks, а также официальным скинам учётной записи.

3. Регистрация офлайн-игроков и вход по паролю

  • Незарегистрированные офлайн-игроки могут использовать `register `, чтобы зарегистрироваться при первом входе.
  • Зарегистрированные офлайн-игроки могут использовать `login `, чтобы войти.
  • Игроки, уже находящиеся в игре, могут использовать `auth changepassword `, чтобы сменить свой офлайн-пароль.

4. Окно входа без пароля для офлайн-игроков

  • После успешного входа зарегистрированного офлайн-игрока мод сохраняет запись о доверенном входе для комбинации UUID учётной записи и IP-адреса.
  • Игрок может снова войти без ввода пароля, если использует тот же UUID и IP-адрес в течение настроенного временного окна. Установите окно в 0, чтобы отключить вход без пароля.
  • Защита от совпадения IP: если IP-адрес связан с несколькими UUID в течение этого окна, все эти UUID теряют право на вход без пароля и должны использовать пароль.

5. Ограничения до авторизации офлайн-игрока

Пока офлайн-игрок не зарегистрируется или не войдёт, он остаётся в состоянии ожидания авторизации. В это время мод:

  • Переводит игрока в режим наблюдателя.
  • Фиксирует игрока на текущей позиции и постоянно накладывает эффект слепоты.
  • Отправляет пустой вид инвентаря, чтобы скрыть настоящее содержимое инвентаря.
  • Блокирует чат, атаки, взаимодействие с блоками, доступ к контейнерам, выбрасывание предметов и другие игровые действия.
  • Разрешает только команды авторизации register и login.

6. Механизмы безопасности

  • Хранение паролей с солью через BCrypt: офлайн-пароли хранятся в базе данных в виде хешей BCrypt с солью, никогда в открытом виде. Каждый хеш использует новую случайную соль. Коэффициент сложности настраивается и по умолчанию равен 12.
  • Ограничения длины пароля: регистрация, смена пароля и назначение пароля администратором применяют одинаковые проверки минимальной и максимальной длины. Пароли, превышающие 72 байта в кодировке UTF-8, также отклоняются, чтобы не выходить за предел входных данных BCrypt.
  • Чёрный список паролей: распространённые слабые пароли из чёрного списка отклоняются с помощью сопоставления без учёта регистра. Файл чёрного списка создаётся автоматически при первом запуске, и администраторы могут редактировать его напрямую, указывая по одному паролю на строку.
  • Ограничение попыток входа и временные баны: достижение максимального числа неверных попыток пароля в течение одной сессии ожидания входа отключает игрока и временно запрещает офлайн-вход для этой учётной записи, ограничивая повторный подбор пароля. И лимит попыток, и длительность бана настраиваются.
  • Тайм-аут входа: зарегистрированные офлайн-игроки должны войти в течение настроенного времени, иначе они отключаются, что не позволяет им бесконечно оставаться в состоянии ожидания авторизации.
  • Аннулирование записей о входе без пароля: смена офлайн-пароля или его сброс администратором очищает существующие доверенные записи о входе игрока, не позволяя использовать их для входа без пароля.

Конфигурация

Файл конфигурации

  • Файл конфигурации сервера называется mixauth-server.toml.
  • NeoForge загружает этот файл по своим правилам конфигурации SERVER.
  • Рекомендуем перезапустить сервер после изменения конфигурации, чтобы все обновлённые настройки аутентификации вступили в силу.

Конфигурация по умолчанию

[database]
path = "mixauth/mixauth"

[offline_login]
max_login_attempts = 3
temporary_block_minutes = 5
trusted_login_window_hours = 24
login_timeout_minutes = 5
prompt_interval_seconds = 5
bcrypt_cost = 12
min_password_length = 1
max_password_length = 72
password_blacklist_path = "mixauth/password_blacklist.txt"

[online_validation]
connect_timeout_seconds = 10
request_timeout_seconds = 10
pending_handshake_ttl_seconds = 120

[localization]
default_language = "en_us"
auto_detect_player_language = true

Ключевые параметры конфигурации

ПараметрОписание
database.pathБазовый путь к базе данных H2. Относительные пути разрешаются относительно корневой директории сервера. По умолчанию создаётся mixauth/mixauth.mv.db.
offline_login.max_login_attemptsМаксимальное число неверных попыток ввода пароля, разрешённых каждый раз, когда игрок ожидает входа.
offline_login.temporary_block_minutesДлительность временной блокировки, применяемой при достижении максимального числа неверных попыток ввода пароля.
offline_login.trusted_login_window_hoursОкно входа без пароля для того же UUID и IP-адреса.
offline_login.login_timeout_minutesЛимит времени для зарегистрированного офлайн-игрока на вход в ожидании аутентификации.
offline_login.prompt_interval_secondsИнтервал между повторными запросами регистрации или входа в ожидании аутентификации.
offline_login.bcrypt_costКоэффициент стоимости BCrypt, используемый для хеширования офлайн-паролей.
offline_login.min_password_lengthМинимальная длина пароля (по умолчанию 1, диапазон 1–72). Ввод BCrypt ограничен 72 байтами.
offline_login.max_password_lengthМаксимальная длина пароля (по умолчанию 72, диапазон 1–72). Ввод BCrypt ограничен 72 байтами.
offline_login.password_blacklist_pathПуть к внешнему файлу чёрного списка паролей. Используйте один пароль на строку; строки, начинающиеся с #, — комментарии. Если файл отсутствует при первом запуске, мод создаёт его автоматически из встроенных ресурсов. Относительные пути разрешаются относительно корневой директории сервера. По умолчанию создаётся mixauth/password_blacklist.txt.
online_validation.connect_timeout_secondsТаймаут подключения к сервисам Mojang.
online_validation.request_timeout_secondsТаймаут запросов к сервисам Mojang.
online_validation.pending_handshake_ttl_secondsКак долго сохраняется ожидающий онлайн-рукопожатие при входе.
localization.default_languageЯзык запросов по умолчанию. Поддерживаемые значения: zh_cn, en_us, es_es, pt_br, ru_ru.
localization.auto_detect_player_languageОтображать ли запросы на языке клиента игрока после входа, если этот язык поддерживается.

Дополнительные примечания:

  • Язык игрока невозможно надёжно определить во время рукопожатия, поэтому на этом этапе всегда используется localization.default_language.
  • Сервер всегда генерирует UUID офлайн-игроков из имени пользователя путём хеширования `OfflinePlayer:`, гарантируя, что одно и то же имя пользователя получает один и тот же UUID при каждом входе.
  • Смена офлайн-пароля или его сброс администратором очищает существующие записи доверенного входа.

Команды

Команды игрока

КомандаОписание
`register `Задать офлайн-пароль впервые. Игроки, которые уже в игре, но ещё не задали офлайн-пароль, также могут использовать эту команду, чтобы создать его.
`login `Войти с помощью офлайн-пароля.
`auth changepassword `Сменить офлайн-пароль.

Команды администратора

КомандаОписание
`auth setpassword <UUID|username> `Установить или сбросить офлайн-пароль для указанного игрока.
auth remove <UUID|username>Удалить все сохранённые данные указанного игрока: запись в списке известных игроков, офлайн-пароль, записи о банах и записи о входе без пароля. При следующем входе мод будет считать его новым игроком.

Частые вопросы

Как установить MixAuth?

Установите NeoForge под свою версию Minecraft, скачайте MixAuth под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть MixAuth?

У MixAuth есть сборки для Minecraft 1.21.5, 1.21.8, 1.21.11, 26.1.2–26.3 ….

Нужен ли MixAuth на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
GNU Lesser General Public License v3.0 onlyможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее