Skip to content

About

gscore 外置登录服务

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

gscore-login

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),配置后主页和日志显示此地址

与 GsCore 插件配合

以 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/ 工具层。

API 端点

端点 说明
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 配置对外域名后,用户收到的登录链接将使用该域名。

About

gscore 外置登录服务

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages