服务器登录

服务器登录

离线模式Forge服务器的密码认证,秉承AuthMe的精神。原版客户端通过聊天注册和登录,采用失败关闭的门控机制,在完成登录前阻止一切操作。

技术

服务器登录

这是一个测试版发布。 该模组可正常运行并已通过测试,但它仍是新项目,尚未在大量不同的服务器和整合包中验证过。安装前请备份你的世界,并请报告任何问题——此阶段的错误报告正是让下一个版本更完善的关键。

如果你的服务器以离线模式运行,任何人都可以用他人的名字加入。没有什么能阻止陌生人以你的身份连接、走进你的基地、清空你的箱子。服务器登录解决了这个问题。玩家首次加入时设置密码,之后每次加入都要输入。在他们完成登录之前,无法移动、聊天、攻击、打开箱子或触碰世界中的任何东西。

你的玩家无需安装任何东西。 该模组运行在服务器端。所有人仍然通过普通的 Minecraft 启动器连接,和以前完全一样。

玩家会看到什么

他们加入后会直接出现在上次离开的位置——没有大厅、没有传送、没有暗室。会有一条消息告诉他们要输入什么:

/login mypassword

首次进入服务器时,他们输入两次来设置密码:

/login mypassword mypassword

就是这么简单。一条命令,他们就能开始游戏了。

设置方法

  1. 你需要一个运行 Forge 47.4.10 或更新版本的 Minecraft 1.20.1 服务器。
  2. 将模组文件放入服务器的 mods 文件夹。
  3. 打开 server.properties 并设置 online-mode=false。
  4. 启动服务器。

就这样。密码会随你的世界一起保存,位于 world/serverlogin/users.json。请将该文件与世界一同备份——丢失它意味着所有人都必须重新注册。

命令

供玩家使用:

命令 作用
/login <password> 登录
/login <password> <password> 首次注册
/changepassword 修改你的密码
/logout 登出

/l 可作为 /login 的快捷方式。

供管理员使用(需要权限等级 3):

命令 作用
/auth count 已注册的玩家数量
/auth status <player> 检查某人是否已注册
/auth remove <player> 删除账户,以便其重新注册
/auth queue 谁仍停留在登录界面
/auth kick <player> [reason] 踢出从未登录的人

当玩家忘记密码时,使用 /auth remove。

语言

该模组提供英语和俄语。打开 config/serverlogin-common.toml 并设置:

[general]
language = "ru_ru"

你也可以自行重写任何消息——问候语、错误消息、踢出文本——而无需改动模组文件。README 中有简短的指南。

须知

密码存储安全。 它们绝不会以明文形式记录,无论是在账户文件中还是服务器日志中。即使是你也无法读取它们——这也正是忘记的密码只能通过 /auth remove 重置、永远无法找回的原因。

猜测密码进展缓慢。 在几次错误尝试后,账户会被锁定一分钟,并且服务器会限制密码尝试的总体频率。

如果你运行带有 Simple Voice Chat 的整合包, 语音需要一个小例外才能工作,而该例外默认已允许。如果其他模组在玩家登录前出现异常,[gate] 配置段就是修复它的地方——README 说明了如何准确找出需要添加的内容。

这仅保护你服务器上的名字,仅此而已。 它不是防火墙,不是 DDoS 防护,也不加密连接。它阻止的是身份冒充,而在离线服务器上,这正是真正毁掉基地的问题。

出了问题?

在评论中告诉我,或在 GitHub 上提交 issue。如果你发现真正的安全漏洞,请通过 GitHub Security Advisories 私下报告,而不要公开发布。

免费且开源,MIT 许可。