OAuth और एकीकृत Phaseo proxy वाला साइन-इन किया हुआ Next.js कार्यक्षेत्र बनाएँ।
सैंपल प्रोजेक्ट
- GitHub: examples/oauth-client-nextjs
- रिपॉज़िटरी में स्थानीय पथ:
examples/oauth-client-nextjs
इस ऐप में क्या शामिल है
- OAuth 2.1 + PKCE लॉगिन
- session-आधारित token संग्रहण और refresh
- control और generation routes के लिए एकीकृत proxy
- मॉडल खोज
/responsesपर एक चैट फ़्लो- अन्य Gateway routes के लिए एक सामान्य endpoint जाँच-उपकरण
इस उदाहरण से कब शुरू करें
इन स्थितियों में इसका उपयोग करें:- अंतिम उपयोगकर्ताओं को delegated access के साथ साइन इन करना हो
- आपको साधारण चैट पेज से अधिक चाहिए
- कई Phaseo endpoints के लिए एक सुरक्षित server route चाहिए
- आपको केवल साधारण API-key चैट UI चाहिए
- आप पहले script या CLI चाहते हैं
मुख्य फ़ाइलें
app/page.tsxapp/dashboard/page.tsxapp/dashboard/GatewayWorkbench.tsxapp/api/gateway/[...surface]/route.tslib/oauth.tslib/session.ts
सैंपल की संरचना ऐसी क्यों है
1. OAuth को Gateway logic से अलग रखें
ऐप इन चीज़ों को अलग रखता है:- प्रमाणीकरण शुरू करने और callback संभालने का लॉजिक
- एन्क्रिप्टेड session का प्रबंधन
- token refresh
2. एक proxy route Gateway calls संभालता है
catch-all proxy route:- endpoint allowlist जांचता है
- मौजूदा bearer token जोड़ता है
- ज़रूरत पड़ने पर tokens refresh करता है
- request और response bodies आगे भेजता है
3. Dashboard एक internal workbench का काम भी करता है
workbench page केवल chat के लिए नहीं है:- मॉडल खोजता है
- का परीक्षण करता है
/responses - non-chat endpoints भी जांच सकता है
ज़रूरी चीज़ें
-
- Node.js और समर्थित package manager
-
- local callback URL वाला OAuth client
-
- मज़बूत session secret
सैंपल चलाएं
NEXT_PUBLIC_OAUTH_CLIENT_IDOAUTH_CLIENT_SECRETNEXT_PUBLIC_PHASEO_URLNEXT_PUBLIC_REDIRECT_URISESSION_SECRETNEXT_PUBLIC_GATEWAY_URL
http://localhost:3000.
काम की जांच करें
- Sign-in configured callback पर लौटता है और session बनाता है।
- Dashboard proxy से मॉडल खोज सकता है।
- एक Responses API अनुरोध browser में access token उजागर किए बिना पूरा होता है।
- Proxy allowlist के बाहर का endpoint अस्वीकार हो जाता है।
इसे अपने मुताबिक कैसे बनाएं
-
- proxy allowlist को केवल product के ज़रूरी endpoints तक सीमित करें
-
- साफ़ user-facing UI बनाते समय workbench को internal इस्तेमाल के लिए रखें
-
- integration स्थिर होने पर generic tester को product के लिए बने flows से बदलें