
验证返回
即使身份验证服务器宕机也能正常游玩
允许你在 Mojang 认证服务器宕机时仍能正常游玩。 此外还改进了网络行为。
工作原理是什么?
- 来自 Mojang webservices/API 的响应会在本地缓存一段时间。
如果发生服务中断,将使用之前缓存的响应。
例如,这可以让你的皮肤正常显示。 - 每个客户端都会在本地存储(如果不存在则生成)一对密钥,当 Mojang 认证服务器宕机时,它将被用作与服务器进行认证的回退方案(参见公钥加密)。
请注意:- 服务器也需要安装此模组
- 你之前必须已经加入过该服务器(在过去 36 天内)
此模组对客户端和服务器来说都是可选的。
但是,如果有一方缺少此模组,当 Mojang 认证服务器/API 宕机时,将无法加入服务器。
使用
命令
在安装了此模组的服务器上,你可以使用 /authback 命令来管理你自己的公钥,如果你是管理员,还可以管理其他玩家的公钥。
配置
客户端
你可以通过以下方式配置此模组:
Options > Online... > AuthBack...- 或者如果安装了 ModMenu:
Mods > AuthBack > Click Icon/Settings
通用
配置会按以下顺序动态加载(按优先级从高到低排列)
- 环境变量
- 以
AUTHBACK_<variant>为前缀- 其中
variant为SERVER或CLIENT
- 其中
- 以
AUTHBACK_为前缀 - 所有属性均为大写,并使用
_代替.或-
- 以
- 系统属性
- 以
authback.<variant>为前缀- 其中
variant为server或client
- 其中
- 以
authback.为前缀
- 以
- 位于
.config/authback-<variant>.json的配置文件- 其中
variant为server或client
- 其中
配置选项完整列表
请注意,预配置的值通常开箱即用。
进行修改时,你应当确切地知道自己在做什么。
通用(客户端和服务器)
| 属性 | 类型 | 默认值 | 备注 |
|---|---|---|---|
global-public-keys-cache.default-reuse-minutes |
int |
120(2 小时) |
Mojang API 全局公钥的响应几乎从不改变。在撰写本文档时,它在过去 2 年多里一直保持不变。此选项指示模组在指定的分钟数内复用上次保存的响应,而不是再次联系 API。使用缓存响应速度更快,并且在频繁重启游戏时节省网络流量。 |
game-profiles.delete-after-days |
int |
36 |
选择 36 天作为默认值,是因为当玩家更改用户名时,该名称将在 37 天内不可用 |
game-profiles.max-cache-size |
int |
250 |
缓存中保留的游戏档案最大数量。如果超出最大值,将删除最旧的条目,直到列表降至配置最大值的 90%。 |
username-to-id-resolver.use-vanilla |
bool |
false |
使用原始/“原版”的用户名到 ID 解析器 |
username-to-id-resolver.expire-after-days |
int |
36 |
缓存条目将在这么多天后被删除。 选择 36 天作为默认值,是因为当玩家更改用户名时,该名称将在 37 天内不可用。 原版实现使用 1 个月。 |
username-to-id-resolver.refresh-before-expire-days |
int |
14 |
在过期前多少天,缓存条目在被访问时会被刷新。 |
username-to-id-resolver.max-cache-size |
int |
1000 |
缓存中保留的用户名和 ID 的最大数量。如果超出最大值,将删除最旧的条目,直到列表降至配置最大值的 90%。 |
username-to-id-resolver.resolve-offline-users-by-default |
bool |
true |
离线用户(例如未验证的账户)是否应被缓存? 请注意
|
username-to-id-resolver.update-on-game-profile-fetch |
bool |
true |
当获取游戏档案时:是否应将信息转发给用户名到 ID 解析器/缓存? 缓存仅在需要时更新(例如未知的用户名/ID 或不存在的条目) |
username-to-id-resolver.use-game-profile-cache |
bool |
true |
当所有主缓存失败时,将 GameProfileCacheManager 用作二级缓存。 这种情况应该极为罕见,但如果缓存例如已损坏,则可能发生 |
skip-extract-profile-action-types |
bool |
false |
调试选项 |
服务器
| 属性 | 类型 | 默认值 | 备注 |
|---|---|---|---|
keys.max-keys-per-player |
int |
3 |
每个玩家最多存储的公钥数量 |
keys.delete-after-unused-days |
int |
36 |
如果用户在此时间内未使用公钥登录,该密钥将被删除。选择 36 天作为默认值,是因为当玩家更改用户名时,该名称将在 37 天内不可用 |
fallback-auth.allow-always |
bool |
true |
始终允许使用回退认证。如果你只希望在玩家登录期间服务器无法与 Mojang API 通信时才允许回退认证,请设置为 false |
fallback-auth.rate-limit.requests-per-ip-per-minute |
int |
20 |
默认值允许每 3 秒一次请求。如果该值设置为 0 或更小,则速率限制器将被禁用 |
fallback-auth.rate-limit.bucket-size |
int |
1000 |
要存储(在内存中)的 IP 地址数量 |
fallback-auth.rate-limit.ignore-private-addresses |
bool |
true |
是否不应限制私有 IP 地址的速率? |
fallback-auth.rate-limit.ipv6-network-prefix-bytes |
int |
8 |
IPv6 的网络前缀字节数(不是位数!)。默认值 8 解析为 /64。 |
force-disable-enforce-secure-profile |
bool |
true |
强制禁用 enforce-secure-profile |
skip-old-user-conversion |
bool |
true |
跳过 1.7.6(2014-04 发布)之前服务器使用的用户文件迁移。服务器极不可能需要这样做,而且需要联系 Mojang API。因此默认跳过迁移 |
disable-legacy-query-handler |
bool |
true |
禁用旧版/1.7 之前(2013-10 发布)的查询/ping 处理器 |
log-connection-init-ips |
bool |
false |
以 INFO 级别记录所有初始化/发起连接的远程 IP |
客户端
所有客户端专属选项都可以在游戏选项 UI 中更改/查看(见上文)。
常见问题
我在哪里可以找到我的公钥?
公钥可以在以下位置找到/复制:
Options > Online... > AuthBack... > Key management- 或者如果安装了 ModMenu:
Mods > AuthBack > Click Icon/Settings > Key management
认证服务器宕机了,我在服务器上安装了此模组,但我无法加入
这是因为服务器不知道你的公钥。
你可以通过以下方式解决:
- 确保你在一个月内登录过该服务器
- 这是因为
usercache.json中的条目——在这种情况下会被使用——将在一个月后过期
- 这是因为
- 确保你可以通过服务器控制台/RCON 运行命令
- 将模组添加到你的本地客户端/游戏并启动它
- 然后从那里复制公钥(详情见上文)
- 然后在服务器上将公钥与你的账户关联:
/authback public_key add name <yourName> <yourPublicKey>- 或
/authback public_key add id <yourUUID> <yourPublicKey>
现在你应该能够像往常一样登录了。
但请注意,与档案相关的内容(如皮肤)将不会显示。
还建议在服务中断结束后重启服务器,以正确加载现有档案。
认证服务器宕机了,我的朋友安装了此模组,但他们无法加入我的服务器
这是因为他们之前从未在安装此模组的情况下加入过。
如果你是管理员,可以通过以下方式解决:
- 告诉你的朋友在安装此模组的情况下启动游戏
- 并将他们的公钥(参见上文“我在哪里可以找到我的公钥?”)发送给你
- 通过运行
/authback public_key add name <yourFriendsPlayerName> <yourFriendsPublicKey>在服务器上将公钥与他们关联
我如何测试回退认证?
- 确保服务器知道你的公钥(你可以使用
/authback public_key list在服务器上检查) - 确保服务器上启用了
fallback-auth.allow-always(默认应已启用) - 以离线模式启动客户端
- 在客户端选项中启用
Suppress any joinServer error - 现在你应该能够使用回退认证加入服务器了。查看日志以了解详情。
此模组将数据存储在哪里?
在游戏目录(例如 %APPDATA%\.minecraft)内的 .mods\authback 目录中。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。