资讯动态

自动化获取ChatGPT访问凭证:基于DuckMail API与Codex协议OAuth流程

发布时间:2026/8/21 0:04:23 来源:尧图企业网站定制
1. 项目概述与核心价值最近在折腾一些AI相关的自动化流程发现一个挺有意思的需求如何批量、稳定地获取和管理ChatGPT或Codex这类服务的访问凭证。无论是用于开发测试、多账号管理还是构建一些自动化工具手动一个个去注册、验证、获取Token效率实在太低而且容易出错。在GitHub上翻找了一圈发现了一个名为Ttungx/codex_auto_register的项目它正好瞄准了这个痛点。这个项目本质上是一个工具集核心目标是通过自动化脚本完成从邮箱注册、ChatGPT账号创建到获取Codex协议OAuth Token的全流程。它最大的亮点在于将原本依赖特定邮箱服务的方案替换为了基于DuckMail API的方案并输出了与CLIProxyAPI v6兼容的认证文件格式。这意味着如果你在搭建或管理一个需要大量AI服务访问权限的代理池或自动化系统这个工具可以帮你省去大量重复劳动。简单来说它能帮你自动完成三件事第一利用DuckMail的临时邮箱API批量创建邮箱地址第二模拟用户行为自动化完成ChatGPT的注册流程第三走通Codex协议的OAuth授权流程拿到关键的access_token和refresh_token并打包成下游工具如CLIProxyAPI能直接识别的格式。整个过程无需人工干预脚本化执行对于有批量操作需求的开发者或团队来说实用性很强。2. 核心设计思路与技术选型解析2.1 为何选择DuckMail API替代原方案原项目adminlove520/chatgpt_register使用的是另一套邮箱服务方案。Ttungx/codex_auto_register项目的一个关键改造点就是将其替换为DuckMail API。这个选择背后有几个实际的考量。首先服务的可用性与稳定性是首要因素。临时邮箱服务本身存在不确定性某些服务可能突然关闭、限制访问或增加验证。DuckMail提供了一个相对规范的API接口这意味着我们可以通过程序化的方式稳定地创建和管理邮箱而不是去解析一个随时可能变动的网页。API调用返回的是结构化的JSON数据邮箱地址、收件箱列表、邮件内容都能直接获取大大降低了脚本解析的复杂度和失败率。其次功能集成度更高。DuckMail的API不仅提供邮箱创建通常还包含邮件接收、删除等完整功能。这对于自动化流程至关重要。例如在注册ChatGPT时我们需要接收验证邮件并提取其中的链接。通过API直接获取邮件内容比模拟浏览器打开网页去抓取要可靠和快速得多也避免了反爬虫机制的干扰。最后控制权与可维护性。依赖一个公开的网页版临时邮箱其HTML结构一旦变化脚本就需要调整。而API的接口契约相对稳定即使有变动也通常会有版本管理维护成本更低。项目自带的duckmaildoc.md文件就是API文档这为开发者理解和调试提供了便利。2.2 Codex协议OAuth流程的自动化实现项目的另一个核心是自动化完成Codex协议的OAuth授权。Codex是OpenAI提供的一套API协议要使用它通常需要用户通过浏览器进行OAuth 2.0授权登录这个过程涉及跳转、表单填写、同意授权等多个步骤。手动操作这个流程不仅繁琐而且无法规模化。protocol_keygen.py脚本的价值就在于它用纯HTTP请求模拟了整个OAuth流程。这需要仔细研究ChatGPT网站和OAuth端点的网络请求包括但不限于初始化会话、提交登录凭证即上一步注册的账号密码、处理可能出现的验证码如Cloudflare Turnstile、获取授权码code、最后用授权码换取access_token和refresh_token。这个过程的技术难点在于对网络请求的精确模拟和状态保持。脚本必须妥善管理Cookies、正确处理重定向、构造符合服务器预期的请求头和请求体。任何一步的偏差都可能导致流程中断。项目成功实现了这一点并将最终的Token以CLIProxyAPI v6要求的特定文件名格式如ak.txt,rk.txt和JSON结构输出实现了与下游工具的“开箱即用”式集成。2.3 与CLIProxyAPI的生态集成CLIProxyAPI是一个用于管理和刷新API令牌的工具支持多账号轮询、自动续期等功能。codex_auto_register项目在设计之初就考虑到了与它的协同工作。脚本生成的Token文件其命名和格式都是CLIProxyAPI v6能够直接识别和加载的。例如ak.txt可能存储access_tokenrk.txt存储refresh_token而codex_tokens/目录下的JSON文件则包含了更完整的账户和令牌信息。更便捷的是脚本还提供了upload_api_url和upload_api_token配置项支持在生成Token后自动将其上传到CLIProxyAPI的管理中心management.html实现全自动的账号注入和纳管。这种设计体现了“工具链”思维。它不是一个孤立的脚本而是一个生态环节中的自动化节点负责解决凭证供给的问题让CLIProxyAPI可以专注于凭证的调度、刷新和使用两者分工明确共同构建了一个高效的AI服务访问管理管道。3. 环境准备与详细配置指南3.1 基础运行环境搭建要运行这个项目你需要一个基本的Python环境。建议使用Python 3.7或更高版本。首先将项目代码克隆到本地git clone https://github.com/Ttungx/codex_auto_register.git cd codex_auto_register接下来安装依赖。项目根目录的脚本和codex/子目录的脚本依赖略有不同建议全部安装以确保所有功能可用。打开终端执行以下命令# 安装根目录脚本的主要依赖用于邮箱注册和基础流程 pip install curl_cffi # 安装Codex协议脚本的依赖用于OAuth令牌获取 pip install requests urllib3这里解释一下这两个库的作用curl_cffi是一个能够模拟不同浏览器指纹如TLS指纹的HTTP客户端库对于绕过一些基于客户端指纹的简单反爬措施例如Cloudflare的部分防护很有帮助。requests则是Python中最常用的HTTP库简单易用。urllib3是requests依赖的低层HTTP库单独列出是为了确保版本兼容性。3.2 核心配置文件详解与填写项目强调配置安全因此不提交真实的配置文件只提供示例。你需要手动创建并填写自己的配置。第一步复制示例配置文件。# 在项目根目录下执行 copy config.example.json config.json copy codex\config.example.json codex\config.json注意在Linux/macOS系统上请使用cp命令替代copy。第二步填写根目录config.json。这是控制批量注册流程的主配置文件。打开config.json你需要关注以下关键项{ “total_accounts”: 5, “duckmail_api_base”: “https://duckmail.top/api”, “duckmail_bearer”: “your_duckmail_bearer_token_here”, “proxy”: “http://127.0.0.1:7890”, “output_file”: “registered_accounts.txt”, “enable_oauth”: true, “oauth_required”: false, “upload_api_url”: “http://your-cpa-management-ip:port/api/upload”, “upload_api_token”: “your_cpa_management_token” }total_accounts: 计划注册的账号数量。建议初次测试时设为1成功后再增加。duckmail_bearer: 这是最重要的配置之一。你需要前往DuckMail服务商的后台获取你的Bearer Token。没有这个Token脚本无法调用API创建邮箱。proxy:必须配置。由于ChatGPT和OAuth服务对地区/IP有访问限制你需要一个稳定的HTTP/HTTPS代理确保你的出口IP位于可访问区域。格式为http://ip:port或socks5://ip:port。enable_oauth: 设置为true表示在注册成功后自动执行OAuth流程获取Codex Token。oauth_required: 设置为false。这意味着即使OAuth流程失败注册成功的邮箱账号信息也会保存。如果设为true则OAuth失败会导致整个账号注册被视为失败。upload_api_url和upload_api_token: 如果你部署了CLIProxyAPI的管理中心并希望自动上传生成的Token才需要填写这两项。否则可以留空或删除。第三步填写Codex目录codex/config.json。这个配置文件更专注于OAuth流程和输出。{ “proxy”: “http://127.0.0.1:7890”, “duckmail_api_base”: “https://duckmail.top/api”, “duckmail_bearer”: “your_duckmail_bearer_token_here”, “cpa_management_url”: “http://your-cpa-management-ip:port”, “cpa_management_token”: “your_cpa_management_token”, “output_accounts_file”: “accounts.txt”, “output_tokens_dir”: “codex_tokens” }这里的proxy、duckmail_*配置应与根目录配置保持一致。cpa_management_url: CLIProxyAPI管理中心的地址用于Token自动上传。output_tokens_dir: 指定生成的Token JSON文件的存放目录。重要提示config.json和codex/config.json文件包含了你的API密钥和代理信息务必将其添加到.gitignore文件中切勿提交到任何公开版本库。4. 脚本运行流程与实操解析4.1 主注册脚本chatgpt_register.py工作流配置完成后在项目根目录下运行主脚本python chatgpt_register.py脚本会按照以下逻辑顺序执行初始化与配置读取加载config.json检查关键配置项如DuckMail Token、代理是否有效。循环创建账号根据total_accounts的数量开始循环处理。获取临时邮箱调用DuckMail API (/v1/mailbox)创建一个新的临时邮箱地址。脚本会解析返回的mailboxId和emailAddress。注册ChatGPT账号这是最复杂的部分。脚本会使用上一步获取的邮箱向ChatGPT的注册接口发送请求。它会模拟一个标准用户注册行为发送验证码请求到邮箱。通过DuckMail API轮询接收邮件调用/v1/mailbox/{mailboxId}/messages。从邮件内容中提取验证链接或验证码。提交验证信息完成账号注册并设置密码。 这个过程高度模拟了浏览器的操作但全部通过HTTP请求完成。执行OAuth流程如果启用如果enable_oauth为true脚本会调用codex/protocol_keygen.py中的逻辑或执行类似流程使用刚注册的账号密码进行OAuth登录换取Codex Token。结果保存与上传将注册成功的邮箱、密码及Token保存到output_file如registered_accounts.txt和codex/registered_accounts.csv。如果配置了CPA上传参数会将Token信息打包通过API上传到CLIProxyAPI管理中心。状态报告在控制台输出每个账号的注册和OAuth状态成功/失败及原因。4.2 Codex令牌生成脚本protocol_keygen.py深度剖析这个脚本是获取可用Token的核心。你可以单独运行它来为已有的账号生成Tokenpython codex/protocol_keygen.py它的内部流程更为精细专注于OAuth协议交互邮箱准备与主脚本类似先通过DuckMail API创建一个临时邮箱。ChatGPT会话建立向ChatGPT发起请求建立初始会话获取必要的Cookies和CSRF Token。密码登录模拟使用提供的账号密码或刚注册的账号模拟登录表单提交。这里需要特别注意处理可能出现的交互式验证虽然脚本尽力自动化但某些严格验证如复杂图形验证码可能导致失败。OAuth授权请求构造请求跳转到OAuth授权页面并自动“点击”同意授权按钮。这一步会得到一个一次性的授权码authorization code。令牌交换将上一步获得的授权码发送到OpenAI的令牌端点https://auth0.openai.com/oauth/token换取最终的access_token和refresh_token。access_token用于直接调用API通常有1小时有效期refresh_token用于在access_token过期后获取新的有效期很长是长期使用的关键。格式化输出将获取到的Token按照特定格式保存。ak.txt: 可能存储当前有效的access_token。rk.txt: 存储refresh_token。codex_tokens/目录下生成以特定规则命名的JSON文件如codex_token_xxx.json里面包含邮箱、access_token、refresh_token、过期时间等完整信息。这个格式是CLIProxyAPI v6所期待的。4.3 输出文件结构与用途运行脚本后本地会生成一系列文件了解它们的用途有助于排查问题和管理账号registered_accounts.txt(根目录)最简单的文本格式每行记录一个注册成功的邮箱和密码。适合快速查看。codex/registered_accounts.csvCSV格式包含更详细的信息如邮箱、密码、注册状态、OAuth状态等可以用Excel打开分析。codex/accounts.txt可能记录了用于OAuth流程的账号列表。codex/ak.txt与codex/rk.txt文本文件分别存储最新或某个批次的access_token和refresh_token。注意如果批量生成这些文件可能只包含最后一个账号的Token或会被覆盖。codex/codex_tokens/目录这是最重要的目录。里面每个JSON文件对应一个成功获取Token的账号文件名通常包含唯一标识。CLIProxyAPI会监控这个目录加载其中的Token文件。文件内容示例{ “email”: “temp_userduckmail.top”, “access_token”: “eyJhbGciOi...很长一串” “refresh_token”: “def50200...很长一串” “expires_at”: 1687856789, “proxy”: “http://127.0.0.1:7890” }codex/codex_accounts_tokens/目录可能是另一种格式的备份或中间文件。实操心得最可靠的Token存储位置是codex_tokens/目录下的JSON文件。建议定期备份这个目录。ak.txt和rk.txt更适合用于快速测试单个Token不适合管理大批量账号。5. 常见问题排查与实战经验分享在实际使用中你几乎一定会遇到一些问题。下面是我在多次运行中总结的常见故障点及其解决方案。5.1 网络与代理相关问题问题1脚本卡住或报错提示连接超时、被拒绝或SSL错误。原因分析99%的情况是代理proxy配置有问题。可能是代理地址/端口错误、代理服务未启动、代理协议http/socks5不匹配或者代理IP已经被目标服务如OpenAI封禁。解决方案验证代理首先在浏览器或使用curl命令手动测试你的代理是否能正常访问chat.openai.com或auth0.openai.com。curl -x http://127.0.0.1:7890 https://chat.openai.com/api/auth/session如果返回403或连接错误说明代理不可用。更换代理使用一个干净、稳定的住宅IP代理或高质量的机房代理。免费代理或过度使用的IP段很容易被屏蔽。检查配置格式确保config.json中的proxy字段格式正确例如“http://user:passip:port”如果需要认证。问题2DuckMail API调用失败返回4xx或5xx错误。原因分析可能是API地址错误、Bearer Token无效或过期、或者DuckMail服务本身暂时不可用。解决方案检查duckmail_api_base地址是否正确可以参考项目内的duckmaildoc.md。登录DuckMail后台确认你的API Token是否有效是否有调用次数限制或已过期。访问DuckMail提供的API文档页面看服务状态是否正常。5.2 注册与OAuth流程失败问题3ChatGPT注册失败提示“邮箱已被使用”或“注册请求频繁”。原因分析临时邮箱的域名可能被OpenAI识别并拉黑。DuckMail提供的域名如果被大量用于注册会被标记。此外过于频繁的注册请求会触发风控。解决方案降低频率在config.json中减少total_accounts并在脚本循环中增加随机延迟可能需要修改脚本代码在关键请求后添加time.sleep(random.uniform(5, 15))。更换邮箱服务如果DuckMail的域名被广泛使用可以考虑寻找其他提供API的临时邮箱服务并按照其接口规范修改脚本中创建邮箱和读取邮件的部分。问题4OAuth流程失败卡在登录环节或提示“无效的授权码”。原因分析这是最棘手的部分。OpenAI的登录页面可能有复杂的JavaScript验证如Cloudflare Turnstile纯HTTP请求难以绕过。或者模拟的请求序列中缺少了某个必要的头信息或参数。解决方案更新脚本检查项目仓库的Issues或更新日志作者可能已经修复了最新的OAuth流程变更。手动获取Token对于少量账号自动化失败时可以退而求其次。使用脚本成功注册账号后手动用该账号密码在浏览器中登录chat.openai.com然后通过开发者工具F12的Network面板找到获取Token的请求手动复制refresh_token。将其填入到codex_tokens/目录下的对应JSON文件中。使用curl_cffi增强模拟根脚本使用的curl_cffi能更好地模拟浏览器指纹。确保OAuth流程也使用了这个库检查protocol_keygen.py的导入和请求部分。问题5成功获取Token但无法用于调用API返回401或403错误。原因分析Token可能已过期或者生成Token时使用的代理IP与调用API时使用的IP不同触发了安全策略。解决方案使用refresh_token刷新access_token。CLIProxyAPI会自动完成这个工作。确保调用API的服务例如你的应用程序使用的代理IP与注册/获取Token时配置的代理IP来自相同或相近的地区。5.3 与CLIProxyAPI集成问题问题6Token文件已生成但CLIProxyAPI无法加载或刷新。原因分析Token文件格式或存放路径不符合CLIProxyAPI v6的预期。或者CPA管理中心的接口地址/Token配置错误。解决方案检查codex_tokens/目录下的JSON文件格式是否正确与CLIProxyAPI文档要求一致。确认CLIProxyAPI的配置文件是否正确指向了codex_tokens/目录。如果使用自动上传功能用工具如Postman测试一下upload_api_url接口是否通畅upload_api_token是否正确。5.4 安全与合规注意事项账号安全自动注册的账号密码不要用于重要用途。这些账号存在被回收或封禁的风险。合规使用批量注册和自动化访问可能违反OpenAI的服务条款。请仅将此工具用于学习、测试或在明确允许的范围内使用避免对官方服务造成压力。信息保护妥善保管包含账号和Token的本地文件不要泄露。.gitignore文件已经排除了这些敏感文件务必不要强制提交。个人经验总结这个工具在理想网络环境和目标服务策略未收紧时非常高效。但其稳定性高度依赖于外部服务DuckMail, OpenAI的接口稳定性。建议将其作为辅助工具而非完全依赖的生产管线。在运行前务必在小规模如1-2个账号下进行充分测试验证整个流程从邮箱创建到Token可用的全链路是否通畅。遇到问题时多查看脚本运行时的详细日志输出那里面通常包含了导致失败的具体HTTP状态码和错误信息是排查问题的第一手资料。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价