基于 FastAPI 和 ADOFAI 的 Yggdrasil 身份验证协议实现脚手架。
Yggdrasil 是 Minecraft 中身份验证服务的实现名称。
pip install yggdrasil-scaffold
详细的文档还没有写。但是这里有些资料:
-
test
目录下有一些样例,模块内部有中文 docstring 和一些注释,暂时可供参考。 -
CONTRIBUTING.md
中有本项目的术语表 -
关于 Yggdrasil API 的更多信息可参见 此文章
如果你打算将本项目用于 Authlib-injector,那么下表列出了你需要实现的端点:
端点类型 | 客户端(原版) | 服务端(原版) |
---|---|---|
用户 | / | / |
会话 | join |
hasJoined |
查询 | query_by_names |
query_by_names |
材质管理 | / | / |
元数据 | 全部 | 全部 |
注: Mojang 的身份认证库 Authlib 的一些早期版本包含对用户端点的调用,但最新版本中已移除。 我不确定用户端点是否在某些版本的游戏上有用,抑或是本就只在 Minecraft 启动器上可用。
游戏只会在”需要从玩家名获取 UUID“时才会访问查询端点。其它时候会从 usercache.json
或者类似的地方获取。
客户端进行多人游戏时,会访问元数据端点来验证材质签名。
如果你打算将本项目用于服务启动器,那么最好实现除hasJoined
以外的全部端点,启动器很可能会用到它们。
Yggdrasil Scaffold 并非被设计用于高并发或安全性要求高的用途,且未经严格测试。请谨慎在生产环境使用。
ADOFAI 是一组数据模型和配套工具,旨在简化自定义实现 Authlib-injector 的规范 Yggdrasil 服务端、客户端及其配套程序的过程。
Yggdrasil Client 是基于 ADOFAI 和 aiohttp 的 Minecraft Yggdrasil 协议兼容客户端,支持 Mojang 后端。