NodeLoc 邀请码自助获取系统
一个基于 PHP 的邀请码自助申请系统,用户填写申请理由,AI 自动审核,通过后通过 Discourse API 动态生成邀请码。
功能
- 安装向导 — 首次使用自动跳转安装页面,配置管理员密码、AI 审核接口、Discourse API 凭证
- AI 审核 — 接入 AI API(默认 Agnes AI),根据用户申请理由自动判断是否批准
- hCaptcha 验证 — 申请表单集成 hCaptcha,防止机器人刷单
- Discourse 集成 — 审核通过后自动调用 Discourse API 创建邀请码
- 管理后台 — 查看邀请码记录、申请记录、统计数据
- 频率限制 — 每个 IP 每 24 小时仅可申请一次
- SQLite 存储 — 无需额外数据库,开箱即用
项目结构
├── index.php # 首页 - 邀请码申请表单
├── admin.php # 管理后台
├── config.php # 配置文件(安装时生成)
├── db.php # 数据库初始化与连接
├── .htaccess # Apache 安全规则
├── install/
│ ├── index.php # 安装向导
│ └── install.lock # 安装锁文件(安装完成后生成)
├── api/
│ ├── apply.php # 申请提交接口
│ └── ai.php # AI 审核接口
└── data/
└── app.db # SQLite 数据库(安装时生成)
环境要求
- PHP 7.4+
- SQLite3 扩展
- cURL 扩展
- mbstring 扩展
- Apache 或 Nginx
安装
- 将项目文件上传至 Web 服务器
- 访问首页,自动跳转至安装页面
- 填写以下配置:
- 管理员密码 — 登录管理后台使用
- AI API 地址 — 审核 API 地址(可选,如不配置则默认通过)
- API Key — AI 服务密钥(可选)
- 模型名称 — 使用的 AI 模型(默认
agnes-2.0-flash) - NodeLoc Cookie — 已登录 NodeLoc 论坛的 Cookie 请求头完整值,格式:
_t=...; _forum_session=...; 其他键值对... - NodeLoc CSRF Token — 同一请求中
X-CSRF-Token请求头的值,一长串字母数字组合
- 点击"开始安装",安装完成后自动跳转首页
未配置 AI 时,所有申请默认通过;未配置 NodeLoc 接口时,审核通过但不会生成邀请码。
使用
用户申请
用户在首页填写申请理由并完成 hCaptcha 验证后提交,系统调用 AI 进行审核,通过后返回邀请码。
管理后台
访问 admin.php,输入管理员密码登录,可查看:
- 已生成邀请码列表
- 申请记录及审核状态
- 统计数据(总邀请码数、通过数、拒绝数)
配置
安装完成后可编辑 config.php 修改配置:
| 常量 | 说明 |
|---|---|
ADMIN_PASSWORD |
管理员密码 |
AI_API_URL |
AI 审核 API 地址 |
AI_API_KEY |
AI API 密钥 |
AI_MODEL |
AI 模型名称 |
NODELOC_COOKIE |
NodeLoc 论坛 Cookie,格式:_t=...; _forum_session=...; ... 多个键值对以 ; 分隔 |
NODELOC_CSRF_TOKEN |
NodeLoc 论坛 CSRF Token,一长串字母数字组合 |
SESSION_TIMEOUT |
管理后台会话超时时间(秒) |
许可证
MIT