news 2026/9/26 15:06:27

Metapi OAuth 管理教程:3 步浏览器授权接入 Codex、Claude、Gemini CLI、Antigravity

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Metapi OAuth 管理教程:3 步浏览器授权接入 Codex、Claude、Gemini CLI、Antigravity

Metapi OAuth 管理教程:3 步浏览器授权接入 Codex、Claude、Gemini CLI、Antigravity

【免费下载链接】metapi把你在各处注册的 New API / One API / OneHub / DoneHub / Veloera / AnyRouter / Sub2API 等站点, 汇聚成 一个 API Key、一个入口,自动发现模型、智能路由、成本最优项目地址: https://gitcode.com/gh_mirrors/meta/metapi

Metapi 的「OAuth 管理」功能让你不用手填 API Key、Access Token 或 Cookie,仅通过浏览器授权,就能把 Codex、Claude、Gemini CLI、Antigravity 这类 provider 官方账号接入同一个网关,最终汇聚成一个 API Key、一个入口。本文带你 3 步完成接入,并附上常见的排障方法。

为什么这类上游要走 OAuth 而不是 API Key

Metapi 支持多种上游接入方式,判断标准很简单:

你拿到的是什么适合的方式典型场景
站点后台地址 + 账号密码站点管理 / 账号管理New API、One API、DoneHub、AnyRouter、Sub2API
一段 API KeyAPI Key 管理OpenAI-compatible、Claude-compatible 网关
provider 官方登录授权OAuth 管理Codex、Claude、Gemini CLI、Antigravity

OAuth 连接的特点:

  • ✅ 使用浏览器授权,而不是手填用户名密码
  • ✅ 授权成功后,Metapi 会自动创建或复用对应 provider 的宿主站点
  • ✅ 账号按 OAuth 连接保存,后续刷新、重绑都走同一套流程

四个内置 provider 一览(来源:providers.ts):

Provider自动创建的站点名备注
CodexChatGPT Codex OAuth直接用 Codex 账号授权
ClaudeAnthropic Claude OAuth直接用 Claude / Anthropic 账号授权
Gemini CLIGoogle Gemini CLI OAuth可选输入 Project ID
AntigravityGoogle Antigravity OAuth复用 Antigravity 账号授权

💡 这类站点是 OAuth 账号在 Metapi 里的「宿主站点」,不要把它理解成又多了一个可签到的面板站。

开始前的 2 个准备

准备 1:确认网络能访问 OAuth 端点

如果你的服务器访问外网受限,可先配置全局SYSTEM_PROXY_URL,或在 OAuth 启动 / 重绑时指定单次代理。相关环境变量见 docs/configuration.md 的「OAuth 与 Provider 登录」一节。

准备 2:远程部署提前想好回调方式

OAuth 默认使用 Metapi 本机的 loopback 回调地址(如127.0.0.1端口)。如果 Metapi 跑在远程服务器上、浏览器跑在本地电脑,有两种通行做法:

  1. SSH 隧道:按页面给出的命令,把回调端口转发到远端
  2. 手动回填 callback URL:浏览器已完成授权但回调没打通时,把最终回调地址贴回管理页

3 步浏览器授权教程

步骤 1:打开「OAuth 管理」页面

进入管理后台左侧菜单「OAuth 管理」。它是一个和「站点管理」「账号管理」并列的独立页面,不是站点编辑器里的隐藏选项。页面会加载 provider 列表和已有连接,对应源码为 OAuthManagement.tsx。

步骤 2:点击要连接的 provider,启动授权会话

点击目标 provider 后,Metapi 会发起一个 OAuth 会话并弹出授权窗口,同时给出:

  • 🔗 授权链接
  • 🖥️ 本机回调端口
  • ⏱️ 手动回填等待时间
  • 🌐 远程访问时的 SSH 隧道命令模板

Gemini CLI 授权时如需要,可在此处填入 Project ID。

步骤 3:在 provider 页面完成授权,确认两层结果

在弹出的浏览器窗口中完成登录授权。Metapi 会轮询会话状态:pending(等待回调)→success(授权成功)→error(需检查回调或网络)。

成功后通常会看到两层结果:

  • 「OAuth 管理」页里出现新的连接记录
  • 「站点管理」页里出现对应 provider 的站点行

接入完成后,这些账号即可参与统一路由与代理,仪表盘会集中展示各通道的调用情况:

授权卡住了?用手动回填 callback URL

这是新手最常见的坑:浏览器里授权成功了,但 Metapi 页面一直停在「等待授权完成」。优先怀疑回调链路没通:

  1. 如果是远程服务器,先按页面提示建立 SSH 隧道
  2. 不方便建隧道时,直接手动回填:
    • 复制浏览器地址栏里最终形如...?code=...&state=...的回调 URL
    • 回到「OAuth 管理」,粘贴到手动回填区域提交
  3. 如果 provider 页面最终没有code/state参数,说明授权本身还没成功,需要重新走一遍授权

相关处理逻辑见 localCallbackServer.ts。

授权之后:自动刷新与重新绑定

接入只是开始,Metapi 会持续维护这些 OAuth 连接:

  • 🔄自动刷新:内置刷新调度器按 provider 分别设定提前量(如 Claude 提前 4 小时、Codex 提前 5 天)刷新 access token,无需人工干预,实现见 oauthRefreshScheduler.ts
  • 🔁重新授权:连接失效或换绑账号时,在连接上点击「重新授权」即可走同一套流程
  • 📋路由分组:多个 OAuth 账号可组成路由单元,按轮询或粘滞策略分流
  • 🤖脚本化:如需自动化,可调用GET /api/oauth/providers、POST /api/oauth/providers/:provider/start、POST /api/oauth/connections/:accountId/rebind等管理接口

常见问题快速自查

Q:provider 显示「当前不可用」?通常是回调监听器不可用。依次检查:服务是否刚启动但回调监听失败、端口是否被占用、当前环境是否缺少必要的 OAuth 配置。

Q:OAuth 连接需要系统代理吗?有可能,尤其是国内服务器访问 OpenAI / Anthropic / Google OAuth 端点时。优先使用全局SYSTEM_PROXY_URL,或 OAuth 启动 / 重绑时指定单次代理。

Q:OAuth 成功后为什么站点管理里多了一行站点?这是预期行为。Metapi 需要一个明确的站点记录来承载账号所属平台、路由与通道归属、后续重绑 / 刷新逻辑。它不代表你又新增了一个普通面板站点。

相关资源

  • 完整 OAuth 文档:docs/oauth.md
  • OAuth 后端服务源码:src/server/services/oauth/
  • 上游接入对比:docs/upstream-integration.md
  • 配置与环境变量:docs/configuration.md

按上面的 3 步走完后,你的 Codex、Claude、Gemini CLI、Antigravity 账号就都已并入 Metapi 的统一入口——之后新增一个 OAuth 账号,也只需重复这三步而已。

【免费下载链接】metapi把你在各处注册的 New API / One API / OneHub / DoneHub / Veloera / AnyRouter / Sub2API 等站点, 汇聚成 一个 API Key、一个入口,自动发现模型、智能路由、成本最优项目地址: https://gitcode.com/gh_mirrors/meta/metapi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 15:06:08

多重假设检验校正:FDR、q值与BH方法详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 15:05:44

RubricRL实战:用显式评分标准替代奖励模型,降低LLM强化学习成本

1. 从“打分”到“训练信号”:RubricRL到底在解决什么问题 大语言模型做强化学习,最让人头疼的从来不是算法本身,而是 奖励信号从哪来 。传统RLHF那套流程,先训一个奖励模型,再用PPO去优化,中间涉及四个模…

作者头像 李华
网站建设 2026/9/26 15:05:24

IBM Heap Analyzer实用指南:从堆转储到OOM内存泄漏定位

简介:IBM HeapAnalyzer 是面向 IBM J9 VM 开发者的堆内存分析工具,用于解析 JVM 生成的 heapdump 快照,可精准定位内存泄漏、过度对象分配与内存碎片等典型问题。该压缩包共 3 个文件,约 5.45MB,包含 jar 主程序、xml …

作者头像 李华
网站建设 2026/9/26 15:04:59

Snowflake数据云实战:存算分离架构、虚拟仓库与成本优化指南

简介:Snowflake数据云实战指南是一份面向数据工程师、分析师与架构师的完整PDF电子书,系统讲解Snowflake数据云的核心架构与关键能力,帮助读者构建现代化数据平台。全书围绕数据存储与计算分离、零拷贝克隆、时间旅行、数据治理、安全共享、性…

作者头像 李华
网站建设 2026/9/26 15:04:55

003011024_.NET 异常捕获完整解析

003011024_.NET 异常捕获完整解析摘要:本文面向工业上位机开发场景,系统梳理 .NET 异常处理的核心机制与工程实践。文章从异常的本质、系统异常类型出发,重点讲解工业软件自定义异常体系与分层异常处理原则,结合相机取图超时、PLC…

作者头像 李华