NodeLoc邀请码自主获取器(PHP带hCaptcha防刷)

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

安装

  1. 将项目文件上传至 Web 服务器
  2. 访问首页,自动跳转至安装页面
  3. 填写以下配置:
    • 管理员密码 — 登录管理后台使用
    • AI API 地址 — 审核 API 地址(可选,如不配置则默认通过)
    • API Key — AI 服务密钥(可选)
    • 模型名称 — 使用的 AI 模型(默认 agnes-2.0-flash)
    • NodeLoc Cookie — 已登录 NodeLoc 论坛的 Cookie 请求头完整值,格式:_t=...; _forum_session=...; 其他键值对...
    • NodeLoc CSRF Token — 同一请求中 X-CSRF-Token 请求头的值,一长串字母数字组合
  4. 点击"开始安装",安装完成后自动跳转首页

未配置 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

1 个赞

你这个够完善,不过目前得考虑另外一个问题就是一天只能发一次邀请()

可以加个IP限制之类的,防止某些人把自己大号小号都拉了进来

咱可以放在gitee上不,这个github访问不了

亖了,James不让批量发放邀请码

github访问不了啥意思,开魔法啊

你做个三个的限制