
MAuth - 登录 / 身份验证与双因素认证
Hytale的认证插件,包含双重认证和电子邮件功能。在登录前阻止行走、破坏方块、交互和受到伤害。
查看大图MAuth - 专为 Hytale 打造的专业认证系统
由 Machina Studios 开发的一款全面且安全的 Hytale 服务器认证插件。MAuth 提供强大的账户管理、高级安全功能和直观的用户体验,用于保护您的服务器和管理玩家身份。
概述
MAuth 是一个专为 Hytale 服务器设计的完整认证解决方案。它直接与游戏原生的 UI 系统集成,提供流畅的游戏内体验,同时为服务器管理员提供对认证流程、注册规则和安全策略的广泛控制。
MAuth 处理基于密码的认证、持久会话、高级玩家的自动令牌验证、双重认证以及用于外部集成的 OAuth 2.0 REST API——使其既适用于休闲服务器,也适用于大型生产环境。
为什么模组文件这么大?
简短说明: CurseForge 不允许我在运行时下载数据库相关组件,所以所有内容都打包在 Jar 文件中。是的,所有内容。
详细说明: MAuth 需要 SQLite、MySQL 和 PostgreSQL 的数据库驱动程序。通常你只会下载实际使用的那一个,但 CurseForge 禁止运行时下载,因此所有三个驱动都被捆绑在一起,以确保一切正常工作 💼。
此外,Jakarta Persistence 和 Hibernate 也被包含在内,以便模组无需手动编写 SQL 即可存储数据——由于 API 无法动态获取依赖项,所有内容都必须打包到模组存档中。
这些内容都是安全的,不会连接到互联网,只是体积较大。我正在与 CurseForge 联系,以探索更简洁的解决方案。
主要特性
MAuth 提供多种功能,使账户管理更加无缝、安全且可配置:
- 使用 BCrypt 哈希进行安全的密码登录 🔐
- 通过身份令牌实现高级/在线账户自动认证 🎫
- 可选的双重认证以增强安全性 🔑
- 可配置的注册要求以匹配服务器策略 ⚙️
- 多数据库支持(SQLite、MySQL、PostgreSQL) 🗄️
- 用于登录、注册和设置的原生 UI 页面 📱
- 持久会话以避免频繁重新认证 🔁
- 带有锁定规则的暴力破解防护 🚧
- 认证完成前的聊天和移动限制 🚫
- 支持混合工作流的离线模式兼容性 🌐
- 用于外部集成的 OAuth 2.0 REST API 🧩
高级安全
安全是 MAuth 的核心支柱。密码使用 BCrypt 进行哈希处理,令牌经过验证,会话相互隔离,可选的 TOTP 双重认证可提供企业级的登录保护。
通过基于 IP 和账户的锁定,对游戏内认证施加暴力破解防御,同时会话过期和清理可防止未授权的持久访问。
用户体验
MAuth 与 Hytale 的 UI 系统集成,呈现现代化的 UI 页面:
- 登录页面在需要时动态切换到 2FA
- 带有可选字段的注册页面
- 带有独立账户和安全选项卡的设置页面
在认证完成之前,玩家暂时无法移动或聊天,从而防止在登录窗口期间的破坏或滥用。
MAuth 同时支持在线和离线服务器,即使服务器本身以离线模式运行,也能自动认证合法的正版用户——在易用性和控制之间取得平衡。
国际化
MAuth 开箱即用支持多种语言,包括:
- 英语(en-US)
- 葡萄牙语(pt-BR)
- 俄语(ru-RU)
- 波兰语(pl-PL)
可以添加其他语言,欢迎翻译人员参与。
配置
MAuth 的配置文件位于:
config/com.machina/mauth(首选,并且在可写时使用)- 后备:
mods/com.machina/mauth(当主路径无法写入时使用)
配置文件使用 JSON5 格式,它允许注释、尾随逗号以及比严格 JSON 更高的灵活性。
MAuth 的配置组织成以下领域:
数据库设置
database.type:使用的后端(sqlite、mysql、postgres)database.host/database.port:SQL 的网络连接database.name:数据库名称或 SQLite 文件database.username/database.password:SQL 的凭据database.schema:SQL 环境的可选模式
注册设置
registration.required:控制何时需要注册(REQUIRED_FOR_ALL、SKIPPED_FOR_ONLINE_MODE、OPTIONAL)registration.fields.*:切换注册表单字段registration.validation.*:应用密码策略
登录设置
login.timeoutSeconds:断开未在限定时间内认证的玩家连接
持久会话设置
session.persistent.enabled:允许无需密码重新连接session.persistent.durationMinutes:过期时间窗口
安全设置
security.twoFactor.enabled:启用 TOTP 双重认证security.lockout.*:IP 和账户的暴力破解防护
OAuth 2.0 API
api.enabled:启用 REST OAuth APIapi.port:绑定的端口api.jwt.*:令牌签名和过期
OAuth 2.0 API
MAuth 提供一个可选的 OAuth 2.0 REST API,外部系统可以使用它来认证账户、验证凭据、获取个人资料数据或实现 Web 面板和配套应用程序 📡。
该 API 支持资源所有者密码凭据流,并签发访问令牌和刷新令牌。它默认是禁用的,并且应放在代理或负载均衡器后面,以实现速率限制和安全。
技术细节
MAuth 使用行业标准组件和实践:
- BCrypt 用于密码哈希
- JPA/Hibernate 用于数据库抽象
- Ed25519 身份令牌验证用于正版玩家
- 原生 UI 集成实现无缝用户体验
- 事件驱动架构实现可扩展性
- 自动模式创建和迁移
持久会话使用安全的令牌拦截和验证,并在可配置的时间窗口后自动过期。
安装
- 将 MAuth 的 Jar 文件放入服务器的
mods目录中 - 根据所需工作流配置
config.json5 - 重启或重载插件
- 插件初始化存储并开始管理认证
支持开发
您可以在此处支持开发 💖,以帮助推动未来的更新和功能:
https://machinastudios.net/support-us
社区
💬 加入我们的 Discord 社区!
获取帮助、分享想法并与其他开发者交流 🧑💻:
- 🆘 支持与故障排除
- 💡 建议与反馈
- 🤝 社区与合作
👉 加入我们的 Discord 服务器:https://discord.gg/QAFrzj48EN
正在加载版本记录…





正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。