一个通用化、简易配置的Yggdrasil认证站点,类似于LittleSkin,支持皮肤和披风管理,提供3D预览功能,前端使用React,后端使用Node.js。
- ✅ 符合Mojang Yggdrasil协议规范
- ✅ 用户注册、登录、密码重置
- ✅ 角色管理(创建、删除角色)
- ✅ 皮肤上传、3D预览、切换
- ✅ 披风上传、3D预览、切换
- ✅ 皮肤库功能(浏览、搜索、使用公共皮肤)
- ✅ 披风库功能(浏览、搜索、使用公共披风)
- ✅ 完整的管理端功能
- ✅ 基于React + TypeScript + Ant Design
- ✅ 主题切换(亮色/暗色/跟随系统)
- ✅ 响应式布局,支持移动端
- ✅ Toast通知提示
- ✅ 平滑过渡动画
- ✅ CSRF保护
- ✅ XSS防护
- ✅ SQL注入防护
- ✅ 安全的文件上传
- ✅ HTTPS支持
- ✅ 内容安全策略(CSP)
- ✅ 速率限制
- ✅ 输入验证
- ✅ 详细的请求日志
- ✅ 错误日志记录
- ✅ 可配置的日志级别
- ✅ 日志文件轮转
- ✅ 数据库日志存储(可选)
- ✅ 一键部署脚本
- ✅ 环境变量配置
- ✅ 可视化配置界面
- 框架: React 18
- 语言: TypeScript
- 构建工具: Vite
- UI组件库: Ant Design 5
- 3D渲染: skinview3d
- 路由: React Router
- 框架: Express
- 语言: TypeScript
- 数据库: 内存数据库(可扩展为SQLite/MySQL/PostgreSQL)
- 认证: JWT
- 日志: Winston
- ORM: 简易内存ORM(可扩展为Sequelize/TypeORM)
minecraft-auth/
├── frontend/ # React前端
├── backend/ # Node.js后端
├── shared/ # 共享代码
├── storage/ # 存储目录
│ ├── skins/ # 皮肤文件
│ └── capes/ # 披风文件
├── logs/ # 日志文件
└── scripts/ # 脚本目录
- Node.js 18+
- npm 9+
- 下载或克隆项目代码
- 双击运行
scripts/start.bat脚本 - 脚本会自动安装依赖、构建项目并启动服务器
- 服务器启动后,访问 http://localhost:3000
# 安装前端依赖
cd frontend
npm install --legacy-peer-deps
# 安装后端依赖
cd ../backend
npm install --legacy-peer-deps# 构建前端项目
cd ../frontend
npm run build
# 构建后端项目
cd ../backend
npm run build# 启动后端服务器
npm run start服务器将在 http://localhost:3000 启动
GET /status- 检查API状态
POST /auth/authenticate- 用户认证POST /auth/refresh- 刷新访问令牌POST /auth/validate- 验证访问令牌POST /auth/invalidate- 使访问令牌失效POST /auth/signout- 登出用户
GET /sessionserver/session/minecraft/profile/:id- 获取角色属性POST /sessionserver/session/minecraft/join- 连接服务器POST /sessionserver/session/minecraft/hasJoined- 检查服务器会话
GET /skins/:filename- 获取皮肤文件GET /capes/:filename- 获取披风文件
| 变量名 | 描述 | 默认值 |
|---|---|---|
| PORT | 服务器端口 | 3000 |
| JWT_SECRET | JWT密钥 | your-secret-key |
| JWT_EXPIRES_IN | JWT过期时间(秒) | 3600 |
| REFRESH_TOKEN_EXPIRES_IN | 刷新令牌过期时间(秒) | 604800 |
| LOG_LEVEL | 日志级别 | info |
| LOG_DIR | 日志目录 | ../../logs |
| STORAGE_DIR | 存储目录 | ../../storage |
| CORS_ORIGIN | CORS允许的源 | * |
- 访问
/register页面 - 填写用户名、邮箱和密码
- 点击注册按钮
- 访问
/login页面 - 填写用户名和密码
- 点击登录按钮
- 登录后访问
/skins页面 - 上传皮肤文件
- 使用3D预览查看效果
- 设置为当前皮肤
- 登录后访问
/capes页面 - 上传披风文件
- 使用3D预览查看效果
- 设置为当前披风
- 访问
/skin-library页面 - 浏览或搜索公共皮肤
- 点击使用按钮应用到自己的角色
- 访问
/cape-library页面 - 浏览或搜索公共披风
- 点击使用按钮应用到自己的角色
- 访问
/admin页面 - 管理用户、角色、皮肤和披风
- 查看日志和统计信息
支持三种主题模式:
- 亮色模式 - 传统明亮主题
- 暗色模式 - 护眼暗色主题
- 跟随系统 - 根据系统设置自动切换
在页面右上角的主题切换下拉菜单中选择
cd frontend
npm run dev前端开发服务器将在 http://localhost:5173 启动
cd backend
npm run dev后端开发服务器将在 http://localhost:3000 启动,支持热重载
使用 curl 或 Postman 测试API端点:
# 检查API状态
curl http://localhost:3000/status- 生产环境中务必修改
JWT_SECRET为强随机字符串 - 建议启用HTTPS
- 定期清理日志文件
- 配置合适的文件上传大小限制
- 考虑使用CDN加速静态文件
- 支持多语言
- 实现管理后台
- 添加用户等级和权限系统
- 支持皮肤和披风的评论和评分
- 提供更详细的API文档
- 支持Docker部署
- 实现皮肤编辑器功能
- 支持皮肤动画和动态效果
MIT License
欢迎提交Issue和Pull Request!
如有问题或建议,请提交Issue或联系开发者。