GsCore 外置 Web 登录服务。为 XutheringWavesUID、DNAUID、NTEUID 三个插件提供统一的浏览器端登录代理,bot 端无需对外暴露端口。
| 插件 | 登录方式 |
|---|---|
| XutheringWavesUID (ww) | 库街区短信验证码 / Launcher SDK 邮箱密码 / 手动 Token 粘贴 |
| DNAUID (dna) | 皎皎角手机短信验证码(含 Alicom4 滑块) |
| NTEUID (nte) | 老虎用户中心手机短信验证码 |
# 1. 安装依赖
uv sync
# 2. 配置(可选)
cp .env.example .env
# 编辑 .env,按需修改端口、启用列表、签名密钥等
# 3. 启动
uv run python main.py默认监听 0.0.0.0:7861,启动后访问 http://localhost:7861 查看服务状态。
公共实例:login.xiamoshi.icu
以下配置通过环境变量或 .env 文件设置:
| 变量 | 默认值 | 说明 |
|---|---|---|
HOST |
0.0.0.0 |
监听地址 |
PORT |
7861 |
监听端口 |
LOG_LEVEL |
INFO |
日志级别(DEBUG / INFO / WARNING / ERROR) |
login_list |
["ww","dna","nte"] |
启用的登录模块列表 |
SHARED_SECRET |
空 | 跨服务 HMAC 签名密钥,留空不校验 |
SESSION_TTL_S |
600 |
单个登录会话存活秒数 |
SIG_TTL_S |
300 |
签名防重放窗口秒数 |
PUBLIC_URL |
空 | 对外访问地址(如 https://login.example.com),配置后主页和日志显示此地址 |
以 XutheringWavesUID 为例,插件内配置 WavesLoginUrl 指向 gscore-login 地址:
WavesLoginUrl = http://your-server:7861
插件会将登录请求转发到 gscore-login,用户在浏览器中完成登录后凭据回传给插件落库。
gscore-login/
├── main.py # FastAPI 入口,注册子路由
├── login_env.py # 全局配置(pydantic-settings)
├── templates/ # 主页模板
└── login/
├── utils/ # 共享工具(cache / logger / signature / base SDK)
├── ww/ # 鸣潮登录模块
│ ├── routers/ # auth / page / transport_http
│ ├── service.py # 业务逻辑
│ ├── state.py # 会话管理
│ ├── schemas.py # 数据模型
│ ├── kuro_api.py # Kuro BBS API
│ ├── launcher_sdk.py # Launcher SDK 客户端
│ └── templates/ # 登录页面
├── dna/ # 无限大登录模块(来自 tyql688/dna-login)
└── nte/ # 异环登录模块(来自 tyql688/nte-login)
DNA 与 NTE 模块源自上游独立项目,分别包含完整的 routers / sdk / state / service / templates 结构,在此项目中共享 login/utils/ 工具层。
| 端点 | 说明 |
|---|---|
GET / |
服务状态主页 |
GET /health |
健康检查 |
POST /waves/token |
WW 创建 page 登录会话 |
POST /waves/l/token |
WW 创建 email 登录会话 |
POST /waves/t/token |
WW 创建 add_token 会话 |
POST /dna/start |
DNA 创建登录会话 |
POST /nte/start |
NTE 创建登录会话 |
完整端点列表见各模块的 routers 目录。
仓库提供了 Dockerfile 和 docker-compose.yml,使用 Docker Compose 构建启动:
cp .env.example .env
# 编辑 .env,设置 PUBLIC_URL、SHARED_SECRET 和启用的登录模块
docker compose build
docker compose up -d
docker compose logs -f gscore-login默认只绑定到服务器本机的 7861 端口,适合通过 OpenResty 或 Nginx 反向代理:
location / {
proxy_pass http://127.0.0.1:7861;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}如需调整宿主机端口,在 .env 中设置 HOST_PORT:
HOST_PORT=7861
PUBLIC_URL=https://login.example.com通过 PUBLIC_URL 配置对外域名后,用户收到的登录链接将使用该域名。