爱意满满的作品展示区。
liuyao729

写了个本地安全提取 ChatGPT Account ID 的油猴脚本,避免直接复制 /api/auth/session 泄露完整 Token

  •  
  •   liuyao729 · 2h 55m ago · 161 views

    身边有朋友在处理 ChatGPT 订阅异常或者核对账户标识时,习惯直接打开 chatgpt.com/api/auth/session 把整个页面返回的 JSON 复制出去。

    看过这个接口返回结构的应该都知道,最底部直接明文带着当前会话的 accessToken(JWT 格式)。只要在有效期内,拿到这个字段就等同于拿到了完整的登录态,可以绕过密码和 2FA 直接调接口或操作账户。

    实际上用来区分账户归属的只是 account.id 字段(UUID 格式的 Account ID,本身不包含鉴权凭据)。为了避免手动复制 JSON 时不小心把底部的 accessToken 一起粘出去,我写了个简单的 Tampermonkey 油猴脚本,只在本地浏览器同源请求并提取 account.id。

    1. 临时用:控制台单行命令

    如果只是偶尔查一次,不想装脚本,登录 chatgpt.com 后按 F12 在 Console 跑这一行就行:

    fetch('/api/auth/session').then(r=>r.json()).then(s=>console.log('Account ID:', s?.account?.id || '未找到'))
    

    2. 常驻用:Tampermonkey 油猴脚本

    如果平时需要频繁核对多账号或者排查订阅状态,可以直接用仓库里的 tools/get-account-id.user.js。

    脚本逻辑很简单(总共 50 多行纯原生 JS,无外部依赖):

    • 仅在 chatgpt.com 域名下注册油猴菜单项 查询 Account ID(本地)
    • 点击后同源读取 /api/auth/session 并解析 account.id
    • 弹窗仅展示脱敏后的 Account ID 供手动复制,不会读取或上传任何 Cookie 与 Token

    另外在 tools/check_connection.py 里顺手放了个零依赖的 Python 小脚本,用来在终端快速测试相关公开页面的 HTTP 状态码、响应耗时与超时排查。

    3. 附带的 Codex 与订阅排查文档

    最近 OpenAI 调整了 Plus、Pro 各档位的额度策略,加上不少人在终端用 Codex CLI(Sign in with ChatGPT 模式 vs API Key 模式)时经常遇到额度扣减异常或者已扣款仍显示 Free 的问题,我把 2026 最新的套餐对比、Codex 额度计算规则、银行卡拒付(AVS/卡段风控)排查整理在了同一个仓库里。

    代码和文档都很简单,主要图个安全省事。如果对大家有用欢迎点个 Star,文档里有出入的地方也欢迎提 Issue 补充。

    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1624 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:23 · PVG 00:23 · LAX 08:23 · JFK 11:23
    ♥ Do have faith in what you're doing.