|
|
4 maanden geleden | |
|---|---|---|
| content | 4 maanden geleden | |
| data | 4 maanden geleden | |
| icons | 4 maanden geleden | |
| sidepanel | 4 maanden geleden | |
| README.md | 4 maanden geleden | |
| background.js | 4 maanden geleden | |
| manifest.json | 4 maanden geleden |
批量自动完成 ChatGPT OAuth 注册/登录流程的 Chrome 扩展。
通过侧边栏控制,支持单步执行、多轮自动运行、中途停止,以及多种验证码接收方式。
@duck.com 地址,无需打开页面@duck.com + QQ / 163 / Inbucket 转发chrome://extensions/管理面板 OAuth 页面地址:
http(s)://<your-host>/management.html#/oauth
Step 1 和 Step 9 都依赖这个地址。
验证码来源,支持四种:
| 选项 | 说明 |
|---|---|
| Temp Email API | 通过 HTTP API 直接轮询邮件,粘贴完整 URL(含 JWT)即可,无需打开邮件页面 |
| 163 Mail | 轮询 163 网页邮箱 |
| QQ Mail | 轮询 QQ 网页邮箱 |
| Inbucket | 通过自定义 host + mailbox 轮询 |
选择后会出现 API URL 输入框,粘贴完整地址即可:
https://temp-email-api.xxx.cc/?jwt=eyJhbGci...
API 需要支持以下端点:
GET /api/mails?limit=N&offset=0(Authorization: Bearer JWT){ results: [{ id, source, raw, created_at }] }需要填写 host 和 mailbox 名称,脚本会打开 https://<host>/m/<mailbox>/ 轮询。
Step 3 使用的注册邮箱:
@duck.com 地址首次使用 Auto 需要打开 DuckDuckGo 页面提取 token,之后直接调 API 生成。
| 步骤 | 名称 | 说明 |
|---|---|---|
| 1 | Get OAuth Link | 从 VPS 面板获取 OAuth 授权链接 |
| 2 | Open Signup | 打开授权链接,点击注册 |
| 3 | Fill Email/Password | 填写邮箱和密码,提交注册 |
| 4 | Get Signup Code | 轮询邮箱获取注册验证码并填入 |
| 5 | Fill Name/Birthday | 随机生成姓名和生日/年龄并填写 |
| 6 | Login via OAuth | 用注册账号登录 OAuth |
| 7 | Get Login Code | 轮询邮箱获取登录验证码并填入 |
| 8 | OAuth Auto Confirm | 点击 OAuth 同意页"继续",捕获 localhost 回调 |
| 9 | VPS Verify | 回到 VPS 面板提交回调 URL,等待认证成功 |
点击 Auto 后自动执行完整流程,支持多轮运行。每轮:
遇到电话验证页面会自动跳过当前账号。
采用两阶段策略:
access_token,保存到持久化存储quack.duckduckgo.com/api/email/addresses 生成新地址,不再打开页面token 失效时会自动回退到页面方式重新提取。
background.js 后台主控,编排 1~9 步、Tab 复用、状态管理
manifest.json 扩展清单
data/names.js 随机姓名、生日数据
content/utils.js 通用工具:等待元素、点击、日志、停止控制
content/vps-panel.js VPS 面板步骤:Step 1 / Step 9
content/signup-page.js OpenAI 注册/登录页步骤:Step 2 / 3 / 5 / 6 / 8
content/duck-mail.js Duck 邮箱获取 + token 提取
content/qq-mail.js QQ 邮箱验证码轮询
content/mail-163.js 163 邮箱验证码轮询
content/inbucket-mail.js Inbucket mailbox 验证码轮询
sidepanel/ 侧边栏 UI
chrome.storage.sessionchrome.storage.local