Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minecraft Auth Server

一个通用化、简易配置的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+

一键部署(Windows)

  1. 下载或克隆项目代码
  2. 双击运行 scripts/start.bat 脚本
  3. 脚本会自动安装依赖、构建项目并启动服务器
  4. 服务器启动后,访问 http://localhost:3000

手动部署

1. 安装依赖

# 安装前端依赖
cd frontend
npm install --legacy-peer-deps

# 安装后端依赖
cd ../backend
npm install --legacy-peer-deps

2. 构建项目

# 构建前端项目
cd ../frontend
npm run build

# 构建后端项目
cd ../backend
npm run build

3. 启动服务器

# 启动后端服务器
npm run start

服务器将在 http://localhost:3000 启动

API 端点

状态检查

  • GET /status - 检查API状态

Yggdrasil认证API

  • POST /auth/authenticate - 用户认证
  • POST /auth/refresh - 刷新访问令牌
  • POST /auth/validate - 验证访问令牌
  • POST /auth/invalidate - 使访问令牌失效
  • POST /auth/signout - 登出用户

会话服务器API

  • 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允许的源 *

使用指南

用户注册

  1. 访问 /register 页面
  2. 填写用户名、邮箱和密码
  3. 点击注册按钮

用户登录

  1. 访问 /login 页面
  2. 填写用户名和密码
  3. 点击登录按钮

管理皮肤

  1. 登录后访问 /skins 页面
  2. 上传皮肤文件
  3. 使用3D预览查看效果
  4. 设置为当前皮肤

管理披风

  1. 登录后访问 /capes 页面
  2. 上传披风文件
  3. 使用3D预览查看效果
  4. 设置为当前披风

浏览皮肤库

  1. 访问 /skin-library 页面
  2. 浏览或搜索公共皮肤
  3. 点击使用按钮应用到自己的角色

浏览披风库

  1. 访问 /cape-library 页面
  2. 浏览或搜索公共披风
  3. 点击使用按钮应用到自己的角色

管理中心

  1. 访问 /admin 页面
  2. 管理用户、角色、皮肤和披风
  3. 查看日志和统计信息

主题切换

支持三种主题模式:

  • 亮色模式 - 传统明亮主题
  • 暗色模式 - 护眼暗色主题
  • 跟随系统 - 根据系统设置自动切换

在页面右上角的主题切换下拉菜单中选择

开发

前端开发

cd frontend
npm run dev

前端开发服务器将在 http://localhost:5173 启动

后端开发

cd backend
npm run dev

后端开发服务器将在 http://localhost:3000 启动,支持热重载

测试

API测试

使用 curl 或 Postman 测试API端点:

# 检查API状态
curl http://localhost:3000/status

安全注意事项

  1. 生产环境中务必修改 JWT_SECRET 为强随机字符串
  2. 建议启用HTTPS
  3. 定期清理日志文件
  4. 配置合适的文件上传大小限制
  5. 考虑使用CDN加速静态文件

后续扩展

  • 支持多语言
  • 实现管理后台
  • 添加用户等级和权限系统
  • 支持皮肤和披风的评论和评分
  • 提供更详细的API文档
  • 支持Docker部署
  • 实现皮肤编辑器功能
  • 支持皮肤动画和动态效果

许可证

MIT License

贡献

欢迎提交Issue和Pull Request!

联系方式

如有问题或建议,请提交Issue或联系开发者。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages