LimboAuth客户端模组

LimboAuth客户端模组

使用 LimboAuth 插件、客户端模组以及可选的定制启动器实现自动登录

工具

Elytrium

LimboAuth 客户端模组

加入我们的 Discord

一个用于 LimboAuth 的客户端模组
测试服务器:ely.su

模组依赖

  • Architectury API

LimboAuth 客户端模组的功能

  • 将会话令牌保存到配置文件(.minecraft/config/limboauth.yml)
  • 你可以通过自定义启动器设置自己的会话令牌

会话令牌的工作原理

  1. 服务器生成一个令牌——一个包含签发时间戳的结构体
  2. 服务器使用私有验证密钥(可在 LimboAuth 配置中查看)对该令牌进行签名
  3. 服务器将令牌发送给客户端,客户端将其保存到配置文件中
  4. 当玩家加入服务器时,服务器询问客户端是否持有会话令牌
  5. 如果玩家持有会话令牌,则将其发送给服务器
  6. 服务器通过私有验证密钥验证该令牌

如何生成会话令牌

伪代码

# 此密钥必须与插件配置和服务器哈希签发器中的密钥相同
verify_key = "testkey123"
issue_timestamp = unix_timestamp_millis()
player_username = "TestPlayer123"

username_bytes = utf8.string_to_bytes(lower(player_username))
timestamp_bytes = big_endian.long_to_bytes(issue_timestamp)

# 此处使用 siphash 2-4(默认 siphash)
tokenhash = siphash.hash(verify_key, byte_concat(username_bytes, timestamp_bytes))
hash_bytes = big_endian.long_to_bytes(tokenhash)

token = base64.encode_to_string(byte_concat(timestamp_bytes, hash_bytes))

令牌何时过期?

  • 如果玩家更改了密码,令牌将过期
  • 参见 ISSUEDTIME 数据库字段

捐赠

非常感谢您的捐赠。捐赠钱包/链接/银行卡:

  • MasterCard 借记卡(Tinkoff Bank):5536 9140 0599 1975
  • Qiwi 钱包:PFORG 或 此链接
  • YooMoney 钱包:4100 1721 8467 044 或 此链接
  • Monero (XMR):86VQyCz68ApebfFgrzRFAuYLdvd3qG8iT9RHcru9moQkJR9W2Q89Gt3ecFQcFu6wncGwGJsMS9E8Bfr9brztBNbX7Q2rfYS