====== 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]]