MAuth - Login / Authentication & 2FA
Authentication plugin for Hytale including 2FA and email. Blocks walking, breaking blocks, interacting and taking damage before logging in.
Описание
MAuth - профессиональная система аутентификации для Hytale
Комплексный и безопасный плагин аутентификации для серверов Hytale, разработанный Machina Studios. MAuth обеспечивает надежное управление учетными записями, расширенные функции безопасности и интуитивно понятный пользовательский интерфейс для защиты вашего сервера и управления идентификаторами игроков.
Обзор
MAuth - это комплексное решение для аутентификации, разработанное специально для серверов Hytale. Он интегрируется непосредственно с родной системой пользовательского интерфейса игры, обеспечивая отполированный игровой опыт, предлагая администраторам серверов обширный контроль над потоками аутентификации, правилами регистрации и политиками безопасности.
MAuth обрабатывает аутентификацию на основе паролей, постоянные сессии, автоматическую валидацию токенов для премиум-игроков, двухфакторную аутентификацию и API OAuth 2.0 REST для внешней интеграции, что делает его подходящим как для случайных серверов, так и для больших производственных сред.
Почему модульный файл такой большой?
Короткая версия: CurseForge не позволяет мне загружать данные базы данных во время выполнения, так что все поставляется внутри банки. Да, все.
Длинная версия: MAuth нуждается в драйверах баз данных для SQLite, MySQL и PostgreSQL. Обычно вы загружаете только тот, который вы на самом деле используете, но CurseForge запрещает загрузки во время выполнения, поэтому все три объединяются, чтобы все работало.
Кроме того, Jakarta Persistence и Hibernate включены, поэтому мод может хранить данные без ручного SQL - и поскольку API не может динамически извлекать зависимости, все должно быть упаковано в архив модов.
Ничего из этого небезопасно, ничто из этого не подключается к Интернету, это просто шикарно. Я в контакте с CurseForge, чтобы изучить более чистое решение.
Ключевые особенности
MAuth предлагает широкий спектр функций, которые делают управление учетными записями простым, безопасным и настраиваемым:
- Безопасный логин на основе пароля с использованием хеширования BCrypt -
- Автоаутентификацию премиум-аккаунта / онлайн-аккаунта через токены идентификации -
- Двухфакторная аутентификация для повышения безопасности
- Настраиваемые требования регистрации для соответствия политике сервера ️
- Поддержка нескольких баз данных (SQLite, MySQL, PostgreSQL)
- Нативные страницы пользовательского интерфейса для входа, регистрации и настроек
- Постоянные сеансы, чтобы избежать постоянной повторной аутентификации
- Защита от грубой силы с правилами локаута
- Защита чата и движения до завершения аутентификации
- Совместимость в автономном режиме с гибридными рабочими процессами
- OAuth 2.0 REST API для внешней интеграции
Передовая безопасность
Безопасность является основным столпом Маута. Пароли хешируются с помощью BCrypt, токены проверяются, сеансы изолированы, а дополнительная двухфакторная аутентификация с помощью TOTP обеспечивает защиту входа в систему корпоративного уровня.
Защита от грубой силы применяется к внутриигровой аутентификации через блокировки на основе IP и учетной записи, в то время как истечение срока действия сеанса и очистка предотвращают несанкционированное сохранение.
Пользовательский опыт
MAuth интегрируется с системой пользовательского интерфейса Hytale для представления современных страниц пользовательского интерфейса:
- Страница входа, которая динамически переключается на 2FA при необходимости
- Страница регистрации с дополнительными полями
- Настройка страницы с отдельной учетной записью и вкладками безопасности
Игрокам временно запрещено перемещаться или общаться до завершения аутентификации, предотвращая горе или насилие во время окна входа в систему.
MAuth поддерживает как онлайн, так и офлайн-серверы, и может автоматически аутентифицировать законных премиум-пользователей, даже если сам сервер работает в автономном режиме.
Интернационализация
MAuth локализован для нескольких языков, включая:
- Английский (en-US)
- Португальский (pt-BR)
- Русский (ru-RU)
- Польский (pl-PL)
Могут быть добавлены дополнительные языки и переводчики.
конфигурация
Конфигурация для Маута живет в:
config/com.machina/mauth(предпочтительно и используется при написании)- запасной вариант:
mods/com.machina/mauth(используется, когда основной путь не может быть написан)
Файлы конфигурации используют JSON5Это позволяет комментировать, запятые и более гибко, чем строгий JSON.
Конфигурация MAuth организована в следующие домены:
Настройки баз данных
База данных. типбэкэнд для использования (склит,мискль,постгре)База данных.host/База данных.портСетевое соединение для SQLБаза данных.Имя DB или файл SQLitedatabase.username/База данных.password: учетные данные для SQLdatabase.schemaФакультативная схема для SQL сред
Настройки регистрации
Регистрация.обязательно- контроль при необходимости регистрации (Требуется для всех,SKIPPED_FOR_ONLINE_MODE,Опциональный)регистрация. поля.*: переключает поля регистрационной формыРегистрация. валидация. *Применяет политики паролей
Настройки входа
login.timeoutВторыеОтключает игроков, которые не могут аутентифицироваться вовремя
Постоянные настройки сеанса
Сессия.persistent.enabled: позволяет восстановить соединение без пароляsession.persistent.durationОкно экспирации
Настройки безопасности
Security.twoFactor.enabledСкачать TOTP 2FASecurity.lockout. *Защита IP и учетной записи от грубой силы
OAuth 2.0 API
api.enabledСкачать REST OAuth APIapi.portПорт для связыванияapi.jwt. *: подписание и истечение срока действия токена
OAuth 2.0 API
MAuth предоставляет дополнительный API OAuth 2.0 REST, который внешние системы могут использовать для аутентификации учетных записей, проверки учетных данных, получения данных профиля или реализации веб-панелей и сопутствующих приложений.
API поддерживает поток учетных данных владельца ресурса и выдает токены доступа и обновления. Он отключен по умолчанию и должен быть помещен за прокси-сервером или балансировщиком нагрузки для ограничения скорости и безопасности.
Технические детали
MAuth использует стандартные для отрасли компоненты и методы:
- BCrypt для хеширования паролей
- JPA/Hibernate для абстракции баз данных
- Проверка токенов Ed25519 для премиум-игроков
- Интеграция UI для бесшовного UX
- Архитектура событий для расширения
- Автоматическое создание схем и миграция
Постоянные сеансы используют безопасный перехват и проверку токенов и автоматически истекают после настраиваемых временных окон.
установка
- Поместите банку Маута в сервер
модсправочник - конфигурировать
config.json5Ваш желаемый рабочий процесс - Перезагрузить или перезагрузить плагины
- Плагин инициализирует хранение и начинает управлять аутентификацией
Поддержка развития
Вы можете поддержать разработку здесь , чтобы помочь подпитывать будущие обновления и функции:
https://machinastudios.net/support-us
сообщество
предрасположенность Присоединяйтесь к нашему сообществу!
Получите помощь, поделитесь идеями и свяжитесь с другими разработчиками:
- Поддержка и устранение неполадок
- Предложения и отзывы
- Сообщество и сотрудничество
😉 Присоединяйтесь к нашему серверу Discord: https://discord.gg/QAFrzj48EN
Показать оригинальное описание (English)
MAuth - Professional Authentication System for Hytale
A comprehensive and secure authentication plugin for Hytale servers developed by Machina Studios. MAuth provides robust account management, advanced security features, and an intuitive user experience for protecting your server and managing player identities.
Overview
MAuth is a complete authentication solution designed specifically for Hytale servers. It integrates directly with the game's native UI system, providing a polished in-game experience while offering server administrators extensive control over authentication flows, registration rules and security policies.
MAuth handles password-based authentication, persistent sessions, automatic token validation for premium players, two-factor authentication and an OAuth 2.0 REST API for external integrations - making it suitable for both casual servers and large production environments.
Why is the mod file so big?
Short version: CurseForge doesn't let me download database stuff at runtime, so everything ships inside the jar. Yes, everything.
Long version: MAuth needs database drivers for SQLite, MySQL and PostgreSQL. Normally you'd download only the one you actually use, but CurseForge forbids runtime downloads, so all three are bundled together so things just work 💼.
On top of that, Jakarta Persistence and Hibernate are included so the mod can store data without manual SQL - and since the API cannot fetch dependencies dynamically, everything must be packed into the mod archive.
None of this is unsafe, none of it connects to the internet, it's just chunky. I'm in contact with CurseForge to explore a cleaner solution.
Key Features
MAuth offers a wide range of features that make account management seamless, secure and configurable:
- Secure password-based login using BCrypt hashing 🔐
- Premium/online account auto-authentication via identity tokens 🎫
- Optional two-factor authentication for enhanced security 🔑
- Configurable registration requirements to match server policies ⚙️
- Multi-database support (SQLite, MySQL, PostgreSQL) 🗄️
- Native UI pages for login, registration and settings 📱
- Persistent sessions to avoid constant re-authentication 🔁
- Brute-force protection with lockout rules 🚧
- Chat and movement protection until authentication completes 🚫
- Offline mode compatibility with hybrid workflows 🌐
- OAuth 2.0 REST API for external integrations 🧩
Advanced Security
Security is a core pillar of MAuth. Passwords are hashed with BCrypt, tokens are validated, sessions are isolated, and optional two-factor authentication with TOTP enables enterprise-grade login protection.
Brute force defenses apply to in-game authentication through IP-based and account-based lockouts, while session expiration and cleanup prevent unauthorized persistence.
User Experience
MAuth integrates with Hytale's UI system to present modern UI pages:
- Login page that dynamically switches to 2FA when required
- Registration page with optional fields
- Settings page with separate account and security tabs
Players are temporarily restricted from moving or chatting until authentication completes, preventing grief or abuse during the login window.
MAuth supports both online and offline servers, and can automatically authenticate legitimate premium users even if the server itself runs in offline mode - striking a balance between usability and control.
Internationalization
MAuth is localized for multiple languages out of the box, including:
- English (en-US)
- Portuguese (pt-BR)
- Russian (ru-RU)
- Polish (pl-PL)
Additional languages can be added and translators are welcome.
Configuration
Configuration for MAuth lives in:
config/com.machina/mauth(preferred and used when writable)- fallback:
mods/com.machina/mauth(used when the primary path cannot be written)
Configuration files use JSON5, which allows comments, trailing commas and more flexibility than strict JSON.
MAuth's configuration is organized into the following domains:
Database Settings
database.type: backend to use (sqlite,mysql,postgres)database.host/database.port: network connection for SQLdatabase.name: DB name or SQLite filedatabase.username/database.password: credentials for SQLdatabase.schema: optional schema for SQL environments
Registration Settings
registration.required: controls when registration is required (REQUIRED_FOR_ALL,SKIPPED_FOR_ONLINE_MODE,OPTIONAL)registration.fields.*: toggles registration form fieldsregistration.validation.*: applies password policies
Login Settings
login.timeoutSeconds: disconnects players who fail to authenticate in time
Persistent Session Settings
session.persistent.enabled: enables reconnect without passwordsession.persistent.durationMinutes: expiration window
Security Settings
security.twoFactor.enabled: enables TOTP 2FAsecurity.lockout.*: IP and account brute-force protections
OAuth 2.0 API
api.enabled: enables REST OAuth APIapi.port: port to bindapi.jwt.*: token signing and expirations
OAuth 2.0 API
MAuth provides an optional OAuth 2.0 REST API that external systems can use to authenticate accounts, validate credentials, fetch profile data or implement web panels and companion apps 📡.
The API supports the Resource Owner Password Credentials flow and issues both access and refresh tokens. It is disabled by default, and should be placed behind a proxy or load balancer for rate limiting and security.
Technical Details
MAuth uses industry-standard components and practices:
- BCrypt for password hashing
- JPA/Hibernate for database abstraction
- Ed25519 identity token verification for premium players
- Native UI integration for seamless UX
- Event-driven architecture for extensibility
- Automatic schema creation and migration
Persistent sessions use secure token interception and validation, and expire automatically after configurable time windows.
Installation
- Place the MAuth jar into the server's
modsdirectory - Configure
config.json5for your desired workflow - Restart or reload plugins
- The plugin initializes storage and begins managing authentication
Support Development
You can support development here 💖 to help fuel future updates and features:
https://machinastudios.net/support-us
Community
💬 Join our Discord community!
Get help, share ideas, and connect with other developers 🧑💻:
- 🆘 Support and troubleshooting
- 💡 Suggestions and feedback
- 🤝 Community and collaboration
👉 Join our Discord Server: https://discord.gg/QAFrzj48EN