AuthBridge 是一个为 Minecraft 服务器设计的 网页认证桥接系统。 玩家加入服务器后,需要先在浏览器中完成登录,后端验证成功后,服务器插件才会解除限制,允许玩家正常游戏。
核心理念:
- 浏览器登录(更安全,支持手机/多端)
- 后端认证(密码不存放在游戏服里)
- 服务器插件同步状态(实时解锁或踢出玩家)
flowchart LR
subgraph Client
A[玩家] --> B[浏览器]
A --> C[Minecraft 客户端]
end
B -->|WebSocket/HTTP| D[认证后端]
C -->|Plugin WS/HTTP| D
D -->|DB查询| E[(数据库)]
- 玩家客户端:原版 Minecraft + 浏览器
- 认证后端:独立 Web 服务 (REST + WebSocket)
- 服务器插件:Folia/Paper 插件,拦截玩家 → 查询认证状态
- 数据库:存储用户凭证 & 会话状态
- 🔒 外部认证:账号密码不进游戏服
- 🌐 前后端分离:可自由更换 Web 技术栈(React/Vue/纯 HTML)
- ⚡ 实时同步:浏览器断开 → 插件立即踢人
- 🔑 安全接口:API Key + HTTPS
- ⏱️ 超时处理:认证超时自动踢出
示例:Spring Boot / Node.js / Django
cd auth-backend
# 启动服务
npm start # 或 ./mvnw spring-boot:run环境变量:
BACKEND_PORT=8080
BACKEND_WS_PATH=/ws
API_KEY=change_me- 将
AuthBridge-*.jar放入plugins/ plugin.yml配置:
name: AuthBridge
version: 0.0.1
main: com.example.authbridge.PluginMain
api-version: '1.21'
folia-supported: trueconfig.yml:
backend:
url: "ws://localhost:8080/ws"
apiKey: "change_me"
heartbeatSec: 15
policy:
onBrowserDisconnect: "kick"frontend/index.html 提供一个简单按钮:
<script>
let ws = new WebSocket("ws://localhost:8080/ws");
ws.onopen = () => console.log("connected");
ws.onclose = () => console.log("disconnected");
</script>- 玩家进入服务器 → 被限制操作 → 提示“请访问 example.com/login”。
- 玩家打开浏览器,输入账号密码登录。
- 后端生成会话,通知插件。
- 插件解除限制,玩家进入正常游戏。
- 浏览器关闭 → 后端通知插件 → 插件立即踢出玩家。
- v0.1: 浏览器 WS 断连 → 插件踢出玩家
- v0.2: 数据库存储会话
- v0.3: REST API 查询玩家认证状态
- v0.4: 支持 OAuth / SSO / 2FA
- v1.0: 正式版本,支持大规模玩家部署
MIT License