Skip to content

Fzhiyu1/AuthBridge

Repository files navigation

📘 README — AuthBridge

简介

AuthBridge 是一个为 Minecraft 服务器设计的 网页认证桥接系统。 玩家加入服务器后,需要先在浏览器中完成登录,后端验证成功后,服务器插件才会解除限制,允许玩家正常游戏。

核心理念:

  • 浏览器登录(更安全,支持手机/多端)
  • 后端认证(密码不存放在游戏服里)
  • 服务器插件同步状态(实时解锁或踢出玩家)

系统架构

flowchart LR
    subgraph Client
        A[玩家] --> B[浏览器]
        A --> C[Minecraft 客户端]
    end

    B -->|WebSocket/HTTP| D[认证后端]
    C -->|Plugin WS/HTTP| D

    D -->|DB查询| E[(数据库)]
Loading
  • 玩家客户端:原版 Minecraft + 浏览器
  • 认证后端:独立 Web 服务 (REST + WebSocket)
  • 服务器插件:Folia/Paper 插件,拦截玩家 → 查询认证状态
  • 数据库:存储用户凭证 & 会话状态

功能特性

  • 🔒 外部认证:账号密码不进游戏服
  • 🌐 前后端分离:可自由更换 Web 技术栈(React/Vue/纯 HTML)
  • 实时同步:浏览器断开 → 插件立即踢人
  • 🔑 安全接口:API Key + HTTPS
  • ⏱️ 超时处理:认证超时自动踢出

快速开始

1. 后端启动

示例: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

2. 部署插件

  • AuthBridge-*.jar 放入 plugins/
  • plugin.yml 配置:
name: AuthBridge
version: 0.0.1
main: com.example.authbridge.PluginMain
api-version: '1.21'
folia-supported: true
  • config.yml
backend:
  url: "ws://localhost:8080/ws"
  apiKey: "change_me"
  heartbeatSec: 15
policy:
  onBrowserDisconnect: "kick"

3. 前端

frontend/index.html 提供一个简单按钮:

<script>
let ws = new WebSocket("ws://localhost:8080/ws");
ws.onopen = () => console.log("connected");
ws.onclose = () => console.log("disconnected");
</script>

使用流程

  1. 玩家进入服务器 → 被限制操作 → 提示“请访问 example.com/login”。
  2. 玩家打开浏览器,输入账号密码登录。
  3. 后端生成会话,通知插件。
  4. 插件解除限制,玩家进入正常游戏。
  5. 浏览器关闭 → 后端通知插件 → 插件立即踢出玩家。

路线图

  • v0.1: 浏览器 WS 断连 → 插件踢出玩家
  • v0.2: 数据库存储会话
  • v0.3: REST API 查询玩家认证状态
  • v0.4: 支持 OAuth / SSO / 2FA
  • v1.0: 正式版本,支持大规模玩家部署

许可证

MIT License


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published