====== Login with ChatGPT ======
//Vytvořeno: **15.7.2026** | Aktualizováno: **~~LASTMOD~~**//
[[https://github.com/opencoredev/login-with-chatgpt|Login with ChatGPT]] je TypeScript SDK pro webové aplikace, které chtějí uživatele přihlásit jejich účtem ChatGPT a používat jejich vlastní předplatné pro AI požadavky. Hodí se například pro interní AI nástroj, kde uživatel nepotřebuje zadávat OpenAI API klíč.
===== Co projekt řeší =====
Projekt není běžný identity provider typu „Přihlásit přes Google“. Po autorizaci může aplikace přes backend využívat AI požadavky na účet uživatele; spotřebovává tedy jeho dostupný tarif a limity.
SDK obsahuje několik balíčků:
* ''@opencoredev/loginwithchatgpt-core'' – OAuth, obnovu tokenů a zjištění dostupných modelů.
* ''@opencoredev/loginwithchatgpt-server'' – serverový handler pro přihlášení, session, odhlášení, seznam modelů a proxy AI požadavků.
* ''@opencoredev/loginwithchatgpt-react'' – React komponentu '''' a hook.
* ''@opencoredev/loginwithchatgpt-ai'' – provider pro [[https://sdk.vercel.ai/|Vercel AI SDK]].
===== Princip fungování =====
Přihlašovací komponenta nejdřív zobrazí uživateli povinný souhlas. Potom otevře ověření u OpenAI a po dokončení vytvoří aplikační session. Prohlížeč dostane pouze ''HttpOnly'' cookie; přístupové a obnovovací tokeny zůstávají v session vrstvě serveru.
Aplikace volá vlastní endpoint, například ''/api/chatgpt/responses''. Serverový handler z cookie načte session, vloží přihlašovací údaje a požadavek odešle na podporované ChatGPT-backed Codex endpointy. Model není vhodné volit napevno: dostupnost závisí na účtu a jeho plánu, proto je potřeba nejdřív načíst seznam modelů přes endpoint ''/models''.
===== Základní integrace =====
Postup vychází z [[https://github.com/opencoredev/login-with-chatgpt/blob/main/docs/content/docs/quickstart.mdx|quickstartu projektu]].
==== Instalace ====
npm install @opencoredev/loginwithchatgpt-server \
@opencoredev/loginwithchatgpt-react \
@opencoredev/loginwithchatgpt-ai ai @ai-sdk/openai
==== Tajemství session ====
Tajemství podepisuje session cookie a šifruje tokeny při ukládání. Musí být stabilní; při použití dočasně generované hodnoty restart aplikace odhlásí všechny uživatele.
openssl rand -hex 32
Hodnotu je potřeba uložit jako proměnnou prostředí ''LWC_SECRET''.
==== Handler v Next.js ====
import { createChatGPTHandler } from "@opencoredev/loginwithchatgpt-server";
const auth = createChatGPTHandler({
secret: process.env.LWC_SECRET,
responsesProxy: {
allowedModels: ["gpt-5.5", "gpt-5.4-mini"],
},
});
export const GET = (request: Request) => auth.handler(request);
export const POST = (request: Request) => auth.handler(request);
Handler se obvykle připojí na cestu ''/api/chatgpt/*''. Seznam v ''allowedModels'' má obsahovat pouze modely, které aplikace skutečně nabízí.
==== Přihlašovací tlačítko ====
"use client";
import { LoginWithChatGPT } from "@opencoredev/loginwithchatgpt-react";
export function SignIn() {
return (
console.log("ChatGPT připojen")}
/>
);
}
===== Bezpečnost a provoz =====
Podle [[https://github.com/opencoredev/login-with-chatgpt/blob/main/docs/content/docs/concepts/security.mdx|bezpečnostního modelu projektu]] je tento typ přihlášení potřeba chápat jako infrastrukturu citlivou na spotřebu. Uživatel musí před autorizací vědět, že jeho požadavky využívají jeho ChatGPT plán a že prompty i přílohy procházejí serverem aplikace.
Výchozí konfigurace drží tokeny mimo běžný aplikační kód a omezuje proxy na 30 požadavků za minutu pro jednu session. Nechrání však uživatele před provozovatelem aplikace: ten ovládá serverový kód a může přes podporované AI požadavky spotřebovávat uživatelův plán. Aplikace také může z ID tokenu získat profilové údaje, například e-mail, jméno a plán.
Pro produkční nasazení je podle [[https://github.com/opencoredev/login-with-chatgpt/blob/main/docs/content/docs/guides/production.mdx|produkčního checklistu]] potřeba zejména:
* použít HTTPS a stabilní ''LWC_SECRET'';
* nahradit výchozí paměťové úložiště sdíleným session storem, například Redisem nebo databází;
* omezit modely, délku promptů, velikost příloh a rychlost požadavků;
* neexportovat raw tokeny přes volbu ''dangerouslyAllowTokenExport'';
* mít viditelné odhlášení, které smaže serverovou session;
* logovat metadata požadavků pro řešení zneužití, ne jejich obsah.
===== Zdroje =====
* [[https://github.com/opencoredev/login-with-chatgpt|opencoredev/login-with-chatgpt – zdrojový kód a README]]
* [[https://github.com/opencoredev/login-with-chatgpt/blob/main/docs/content/docs/quickstart.mdx|Login with ChatGPT – Quickstart]]
* [[https://github.com/opencoredev/login-with-chatgpt/blob/main/docs/content/docs/concepts/security.mdx|Login with ChatGPT – Security model]]
* [[https://github.com/opencoredev/login-with-chatgpt/blob/main/docs/content/docs/guides/production.mdx|Login with ChatGPT – Production checklist]]