PyAuthSkin 是一个轻量级、高性能的 Minecraft 登录验证器和皮肤站项目,完全由 Python 编写。它支持 Yggdrasil 认证协议,允许玩家使用自定义皮肤登录游戏。
- Yggdrasil 认证:兼容
authlib-injector等第三方启动器。 - 用户管理:网页端注册、登录、登出,支持密码强度验证。
- 皮肤管理:用户可上传、切换、删除自己的皮肤,支持 Steve (经典) 和 Alex (纤细) 模型。
- 多分辨率皮肤:支持 64x64、128x128、512x512 等多种分辨率皮肤的上传和头像预览。
- 可配置:通过
config.py轻松定制服务器行为和日志等级。
-
克隆项目:
git clone https://github.com/jiang068/PyAuthSkin.git cd PyAuthSkin -
创建并激活虚拟环境:
python -m venv plavenv # Windows PowerShell .\plavenv\Scripts\Activate.ps1 # Linux/macOS Bash # source plavenv/bin/activate
-
安装依赖:
pip install -r requirements.txt
-
启动项目:
python main.py
项目将在
http://127.0.0.1:80运行。 重要提示:Minecraft 客户端(通过authlib-injector)在加载皮肤时,要求皮肤 URL 不能包含端口号。
因此,服务器必须监听在标准的 HTTP 端口80,或者通过 Nginx 等反向代理将80端口的请求转发到你的应用端口。
config.py 文件允许你定制服务器的行为:
HOST: 服务器监听的主机地址。默认为"127.0.0.1"。"127.0.0.1": 仅本机可访问。"0.0.0.0": 局域网内其他机器也可访问。
PORT: 服务器监听的端口。默认为80。AUTH_API_PREFIX: Yggdrasil 认证 API 的自定义前缀。默认为"/api/pyauthskin"。- 重要:如果你修改此项,请务必同步更新
authlib-injector的配置。
- 重要:如果你修改此项,请务必同步更新
LOG_LEVEL: Uvicorn 和应用的日志输出等级。默认为"info"。- 可选值:
"debug","info","warning","error","critical"。
- 可选值:
下载 authlib-injector 前往 authlib-injector Releases 下载 Jar 包并存放在服务器根目录。
添加启动参数
在服务器启动命令中加入以下参数(注意:-javaagent 必须位于 -jar 之前):
-javaagent:"authlib-injector-1.2.7.jar"=http://127.0.0.1(域名)/api/pyauthskin- 完整命令示例:
java -Xmx2G -Xms2G -javaagent:"authlib-injector-1.2.7.jar"=http://127.0.0.1(域名)/api/pyauthskin -jar "fabric-server-mc.1.21.10-loader.0.17.3-launcher.1.1.0.jar" nogui-
参数执行逻辑:
$$\text{Java路径} \rightarrow \text{内存参数} \rightarrow \text{JavaAgent(注入器)} \rightarrow \text{核心文件(-jar)} \rightarrow \text{游戏参数(nogui)}$$
修改服务器目录下的 server.properties 文件:
online-mode=true(必须为 true。必须开启正版验证模式,authlib-injector 才能正常接管验证)
enforce-secure-profile=false(建议关闭。防止因自定义验证服务器的签名校验问题导致无法连接)
以 PCL2 为例
在启动器中找到 版本设置 -> 设置 -> 服务器。
| 配置项目 | 设置内容 |
|---|---|
| 登录方式 | 第三方登录:Authlib Injector 或 LittleSkin |
| 认证服务器 (必填) | http://127.0.0.1(域名)/api/pyauthskin(确保 API 路径正确) |
| 注册链接 | http://127.0.0.1(域名)/register |
| 服务器名称 | 随意填写 |
