项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1438
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Node.js 与 npm 环境(用于安装 @openai-oauth/react)
- 一个 React 项目,该组件目前仅支持 React
- 一个 ChatGPT 个人账号(免费或付费计划均可)
- 托管网页应用需在 Chrome 或 Firefox 浏览器中安装 Sign in with ChatGPT 扩展
安装与启动步骤
-
1安装 React 组件包
在 React 项目根目录执行,安装 @openai-oauth/react。注意该组件当前只支持 React 项目。
npm i @openai-oauth/react -
2渲染登录按钮
在客户端组件中引入 SignInWithChatGPT 并渲染,按钮会处理完整的浏览器登录流程,登录后变成断开按钮。
"use client"; import { SignInWithChatGPT } from "@openai-oauth/react"; export default function Page() { return <SignInWithChatGPT />; } -
3准备浏览器扩展
托管网页应用需通过 Chrome 或 Firefox 扩展完成 OAuth 交接;预置组件会检测浏览器并展示对应安装引导。
-
4把会话转发到服务端
浏览器受 CORS 限制不能直接请求模型,需用 openaiAuthHeaders() 取到请求头并 POST 到自己的后端路由。
import { openaiAuthHeaders } from "@openai-oauth/react"; await fetch("/api/chat", { method: "POST", headers: await openaiAuthHeaders(), body: "Hello!", }); -
5服务端调用模型
在服务端用 openaiCredentials(request) 读取请求绑定凭证,创建 OpenAI OAuth 客户端并调用模型生成文本。
import { createOpenAIOAuth } from "@openai-oauth/ai-sdk"; import { openaiCredentials } from "@openai-oauth/react/server"; import { generateText } from "ai"; export async function POST(request: Request) { const openai = createOpenAIOAuth(openaiCredentials(request)); const result = await generateText({ model: openai("gpt-5.4-mini"), prompt: await request.text(), }); return new Response(result.text); } -
6自定义登录界面
用 useSignInWithChatGPT 钩子自建登录系统,需自行在 needs-extension 状态下展示扩展安装链接。
import { useSignInWithChatGPT } from "@openai-oauth/react"; const login = useSignInWithChatGPT(); // login.status: "signed-in" | "needs-extension" 等 // login.login / login.logout / login.reset / login.installUrl
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
hideAttribution | 否 | 移除预置按钮自带的 Powered by OpenAI OAuth 归属链接 | hideAttribution |
onSuccess | 否 | 登录成功回调,可拿到 session 及 accountId | (session) => console.log(session.accountId) |
onError | 否 | 登录失败回调,用于打印错误信息 | (error) => console.error(error.message) |
onStateChange | 否 | 登录状态变化时触发的回调 | (state) => console.log(state.status) |
如何确认成功
页面上出现 Sign in with ChatGPT 按钮;未装扩展时显示安装引导页;登录成功后按钮变为 Disconnect,服务端路由能返回模型文本。
常见问题
Q:为什么浏览器里直接调用模型会失败?
A:浏览器请求模型会受 CORS 限制,Electron、Tauri 等 WebView 内同样如此,必须把会话转发到自己的服务端路由再调用模型。
Q:可以用在 Vue 或其他框架吗?
A:README 明确说明该组件目前仅适用于 React。
Q:免费 ChatGPT 账号能用吗?
A:可以,Sign in with ChatGPT 同时支持免费和付费计划。
Q:必须安装浏览器扩展吗?
A:托管网页应用需要 Chrome 或 Firefox 的 Sign in with ChatGPT 扩展来安全完成 OAuth 交接,预置组件会自动检测并给出安装引导。
注意事项
- 模型请求不能在浏览器直接发起,需经服务端转发(Electron、Tauri 等 WebView 场景同理)。
- Chrome 扩展地址:https://chromewebstore.google.com/detail/sign-in-with-chatgpt/odbgboachaefbbbdiffcefhpkekhfcna
- Firefox 扩展地址:https://addons.mozilla.org/firefox/addon/sign-in-with-chatgpt/
- 自定义登录界面时,需要自己负责在需要时展示扩展安装链接。
核心亮点
- 无需 OpenAI API Key,直接用 ChatGPT 账号 OAuth 授权即可调用模型
- 接口兼容 OpenAI 官方格式,迁移成本低,可无缝替换
- 支持 GPT-4o 和 Codex 等最新模型,满足对话和代码生成需求
不足之处
- 依赖 ChatGPT 账号登录态,存在账号风控或封禁风险
- 文档/社区待观察
适用场景
- 个人开发者快速搭建 AI 聊天机器人原型
- 在本地环境中免费调用 GPT-4o 进行代码辅助
- 为教育或学习项目提供低成本的 AI 能力接入
替代项目
LiteLLM、OpenRouter、gpt4free
同类项目推荐
tart
开源
在 Apple Silicon 上秒级拉起 macOS/Linux 虚拟机跑 CI
macOS and Linux VMs on Apple Silicon to use in CI and other automations
ai-on-openshift
开源
在OpenShift上快速部署AI工作负载,参考架构即拿即用。
AI-on-OpenShift website source code
weightslab
开源
让 AI 工程师轻松搞定图像、视频、点云等杂乱数据
Monitoring platform for ML teams building real‑world AI at scale.
octelium
开源
一套自托管平台,搞定 VPN、ZTNA、API 网关和内网穿透
A next-gen FOSS self-hosted unified zero trust secure access platform that can opera···
spellbook-docker
开源
一条命令拉起本地多模型AI全家桶
AI stack for interacting with LLMs, Stable Diffusion, Whisper, xTTS and many other A···
gateway
开源
用 Rust 和 Go 打造 AI 时代的 Kubernetes 网关
Nantian Gateway — Kubernetes Gateway API implementation with AI proxy, WASM plugin ···
llm-graph-builder
开源
上传文档,一键用LLM自动生成知识图谱
Neo4j graph construction from unstructured data using LLMs
rkllama
开源
在瑞芯微开发板上像 Ollama 一样本地跑大模型
Ollama alternative for Rockchip NPU: An efficient solution for running AI and Deep l···
vox-serve
开源
让 TTS/STS 模型秒变低延迟流式在线服务
A Streaming-Native Serving Engine for TTS/STS Models
