>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
TypeScript

Come eseguire script locali e app web attraverso un account ChatGPT invece dell'API OpenAI a pagamento

OpenAI OAuth

Le bollette dell'API OpenAI crescono più velocemente di quanto il tuo ultimo side project raggiunga il completamento. Nel frattempo, molti hanno già un abbonamento ChatGPT Plus a pagamento, eppure devi pagare di nuovo per ogni richiesta per accedere a modelli come gpt-5.4-mini o generare immagini.

Il progetto EvanZhouDev/openai-oauth offre un modo per evitare questo doppio pagamento. Trasforma un normale account ChatGPT in un endpoint API, completamente compatibile con il client OpenAI standard e il Vercel AI SDK.

Perché eseguire un proxy locale

OpenAI offre lo strumento CLI Codex per lavorare con il codice. Sotto il cofano, questa CLI effettua richieste agli endpoint interni chatgpt.com/backend-api/codex, utilizzando l'autorizzazione OAuth.

La libreria openai-oauth intercetta questi token e avvia un server HTTP locale. Invi richieste standard a localhost:10531/v1, e la libreria le traduce in ChatGPT.

Lo strumento risolve due problemi:

  1. Avvia un server locale per script e utility senza acquistare chiavi API.
  2. Fornisce un pulsante "Accedi con ChatGPT" per app React di terze parti. Gli utenti accedono con il proprio account, e le richieste passano attraverso il loro abbonamento.

Avvio locale con un comando

Il modo più veloce per testare il proxy è attraverso la CLI. Non è necessario inserire chiavi API.

npx openai-oauth

L'utility aprirà una finestra del browser per l'autorizzazione ChatGPT, salverà i token in ~/.codex/auth.json, e mostrerà l'indirizzo nella console:

OpenAI-compatible endpoint ready at http://127.0.0.1:10531/v1
Use this as your OpenAI base URL. No API key is required.
Available Models: gpt-5.6-terra, gpt-5.6-sol, gpt-image-2

Il server può essere inviato in modalità background con il flag --detach, o gestito con i comandi logs e stop.

Se stai scrivendo in TypeScript, non hai bisogno di avviare un processo proxy separato. La libreria si connette direttamente nel tuo codice:

npm i @openai-oauth/local @openai-oauth/ai-sdk ai
import { createOpenAIOAuth } from "@openai-oauth/ai-sdk";
import { openaiCredentials } from "@openai-oauth/local";
import { generateText } from "ai";

const openai = createOpenAIOAuth(openaiCredentials());

const result = await generateText({
	model: openai("gpt-5.4-mini"),
	prompt: "Привет!",
});

Il codice prende l'autorizzazione dal profilo Codex locale e invia richieste direttamente al backend di ChatGPT.

Come funziona l'SDK

L'architettura della libreria è suddivisa in due livelli: Credential Sources e Client Adapters.

Package Structure

Le fonti di autorizzazione gestiscono il recupero dei token:

  • @openai-oauth/local legge i token dal disco locale nella directory ~/.codex.
  • @openai-oauth/react estrae il token dalla sessione del browser dell'utente.

Gli adapter avvolgono il token nel formato richiesto:

  • @openai-oauth/ai-sdk prepara un provider per Vercel AI SDK.
  • @openai-oauth/openai-client crea una configurazione per il pacchetto ufficiale openai.
  • @openai-oauth/core fornisce un client fetch e baseURL di basso livello per l'uso in qualsiasi altro client.

Ecco un esempio di lavoro con il client ufficiale openai:

import { createOpenAIOptions } from "@openai-oauth/openai-client";
import { openaiCredentials } from "@openai-oauth/local";
import OpenAI from "openai";

const client = new OpenAI(createOpenAIOptions(openaiCredentials()));

const response = await client.chat.completions.create({
  model: "gpt-5.4-mini",
  messages: [{ role: "user", content: "Привет!" }],
});

Generazione di immagini

Il repository supporta il lavoro con il modello GPT Image 2. Gli endpoint /v1/images/generations e /v1/images/edits vengono proxyati allo stesso modo dei modelli di testo.

Esempio di richiesta tramite cURL:

curl http://127.0.0.1:10531/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"A tiny house in a forest"}'

Oppure nel codice con Vercel AI SDK:

const result = await generateImage({
	model: openai.image("gpt-image-2"),
	prompt: "A tiny house in a forest",
});

Accedi con ChatGPT in React

Sign in with ChatGPT

La funzionalità più interessante nella v2 è l'autorizzazione pronta all'uso per i servizi web. Installi il pacchetto @openai-oauth/react e aggiungi un pulsante alla tua interfaccia:

import { SignInWithChatGPT } from "@openai-oauth/react";

export default function LoginPage() {
	return <SignInWithChatGPT />;
}

I browser bloccano le chiamate dirette alle API di terze parti a causa di CORS. Ecco perché il client invia le intestazioni di autorizzazione al tuo backend, e il backend fa da proxy alla richiesta.

Per la trasmissione sicura della sessione OAuth, gli utenti devono installare l'estensione del browser "Accedi con ChatGPT" per Chrome o Firefox. Il pulsante pronto all'uso rileverà automaticamente la presenza dell'estensione e offrirà di installarla se necessario. All'interno del browser, la sessione viene crittografata usando WebCrypto e archiviata in IndexedDB.

Limitazioni e rischi

Non puoi definire questo progetto completamente universale. Ha limitazioni notevoli:

  • L'elenco dei modelli disponibili è limitato a ciò che Codex CLI fornisce per il tuo piano.
  • L'autorizzazione delle app web funziona solo in Chrome e Firefox. Nessun supporto per Safari ancora.
  • L'endpoint /v1/responses nella CLI funziona in modalità stateless. Dovrai passare l'intera cronologia della conversazione in ogni richiesta.
  • L'uso non ufficiale del backend di ChatGPT viola i termini di servizio di OpenAI.

Il progetto non dovrebbe essere utilizzato per servizi di produzione pubblici con molti utenti. Il pooling di account o la condivisione di token con terze parti può portare al ban del tuo account ChatGPT.

A chi sarà utile questo repository

La libreria vince per la sua semplicità di avvio per lo sviluppo individuale, i side project e il test di prototipi. Ottieni l'accesso ai modelli OpenAI durante il debug locale senza collegare una carta di credito alla dashboard API.

La licenza Apache-2.0 apre il codice per qualsiasi esperimento. Puoi provare il proxy in azione in un paio di minuti eseguendo npx openai-oauth nel tuo terminale.

Progetti correlati