Erstelle eine angemeldete Next.js-Workbench mit OAuth und einem einheitlichen Phaseo-Proxy.
Beispielprojekt
- GitHub: examples/oauth-client-nextjs
- Lokaler Repository-Pfad:
examples/oauth-client-nextjs
Was die App abdeckt
- OAuth-2.1- und PKCE-Anmeldung
- sitzungsgebundene Token-Speicherung und -Erneuerung
- einen einheitlichen Proxy für Steuerungs- und Generierungsrouten
- Modellerkennung
- einen Chat-Ablauf über
/responses - einen allgemeinen Endpoint-Tester für weitere Gateway-Routen
Wann du mit diesem Beispiel starten solltest
Nutze dieses Beispiel, wenn:- Endnutzer sich mit delegiertem Zugriff anmelden sollen
- du mehr als eine einfache Chat-Seite brauchst
- du eine sichere Serverroute für mehrere Phaseo-Endpoints möchtest
- du nur eine einfache Chat-UI mit API-Schlüssel brauchst
- du zuerst ein Skript oder eine CLI möchtest
Wichtige Dateien
app/page.tsxapp/dashboard/page.tsxapp/dashboard/GatewayWorkbench.tsxapp/api/gateway/[...surface]/route.tslib/oauth.tslib/session.ts
Warum das Beispiel so aufgebaut ist
1. OAuth bleibt von der Gateway-Logik getrennt
Die App trennt:- Start- und Callback-Logik der Authentifizierung
- verschlüsselte Sitzungsverwaltung
- Token-Erneuerung
2. Eine Proxy-Route verarbeitet die Gateway-Aufrufe
Die Catch-all-Proxy-Route:- prüft die Endpoint-Allowlist
- fügt das aktuelle Bearer-Token ein
- erneuert Tokens bei Bedarf
- leitet Anfrage- und Antwort-Bodies weiter
3. Das Dashboard dient zugleich als interne Workbench
Die Workbench-Seite bietet mehr als Chat:- sie ermittelt Modelle
- sie testet
/responses - sie kann auch Nicht-Chat-Endpoints testen
Voraussetzungen
-
- Node.js und ein unterstützter Paketmanager
-
- ein OAuth-Client mit konfigurierter lokaler Callback-URL
-
- ein starkes Sitzungsgeheimnis
Beispiel ausführen
NEXT_PUBLIC_OAUTH_CLIENT_IDOAUTH_CLIENT_SECRETNEXT_PUBLIC_PHASEO_URLNEXT_PUBLIC_REDIRECT_URISESSION_SECRETNEXT_PUBLIC_GATEWAY_URL
http://localhost:3000.
Ergebnis prüfen
- Nach der Anmeldung wird die konfigurierte Callback-URL aufgerufen und eine Sitzung erstellt.
- Das Dashboard kann Modelle über den Proxy ermitteln.
- Eine Responses-API-Anfrage wird abgeschlossen, ohne ein Zugriffstoken im Browser offenzulegen.
- Ein Endpoint außerhalb der Proxy-Allowlist wird abgelehnt.
Das Beispiel anpassen
-
- kürze die Proxy-Allowlist auf die Endpoints, die dein Produkt wirklich benötigt
-
- behalte die Workbench intern und entwickle darauf eine übersichtlichere Nutzeroberfläche
-
- ersetze den allgemeinen Tester durch produktspezifische Abläufe, sobald die Integration stabil ist