Créez un environnement de travail Next.js avec connexion OAuth et un proxy Phaseo unifié.
Projet d’exemple
- GitHub: examples/oauth-client-nextjs
- Chemin local du dépôt :
examples/oauth-client-nextjs
Fonctionnalités de l’application
- une connexion OAuth 2.1 + PKCE
- le stockage et le renouvellement des jetons associés à la session
- un proxy unifié pour les routes de contrôle et de génération
- la découverte des modèles
- un flux de chat via
/responses - un testeur générique pour les autres routes du gateway
Quand commencer avec cet exemple
Utilisez cet exemple si :- les utilisateurs finaux doivent se connecter avec un accès délégué
- il vous faut plus qu’une simple page de chat
- vous voulez une route serveur sécurisée pour plusieurs endpoints Phaseo
- vous avez uniquement besoin d’une interface de chat simple avec clé API
- vous voulez d’abord un script ou une CLI
Fichiers principaux
app/page.tsxapp/dashboard/page.tsxapp/dashboard/GatewayWorkbench.tsxapp/api/gateway/[...surface]/route.tslib/oauth.tslib/session.ts
Pourquoi l’exemple est structuré ainsi
1. OAuth reste séparé de la logique du gateway
L’application isole :- la logique de démarrage de l’authentification et du callback
- la gestion chiffrée des sessions
- le renouvellement des jetons
2. Une seule route proxy gère les appels au gateway
La route proxy catch-all :- vérifie la liste d’autorisation des endpoints
- ajoute le jeton bearer actuel
- renouvelle les jetons si nécessaire
- transmet les corps des requêtes et réponses
3. Le tableau de bord sert aussi d’environnement de travail interne
La page de l’environnement de travail ne sert pas uniquement au chat :- elle découvre les modèles
- elle teste
/responses - elle peut aussi tester des endpoints autres que ceux de chat
Prérequis
-
- Node.js et un gestionnaire de paquets compatible
-
- un client OAuth configuré avec l’URL de callback locale
-
- un secret de session robuste
Exécuter l’exemple
NEXT_PUBLIC_OAUTH_CLIENT_IDOAUTH_CLIENT_SECRETNEXT_PUBLIC_PHASEO_URLNEXT_PUBLIC_REDIRECT_URISESSION_SECRETNEXT_PUBLIC_GATEWAY_URL
http://localhost:3000.
Vérifier le résultat
- La connexion revient à l’URL de callback configurée et crée une session.
- Le tableau de bord peut découvrir des modèles via le proxy.
- Une requête à l’API Responses aboutit sans exposer de jeton d’accès au navigateur.
- Un endpoint absent de la liste d’autorisation du proxy est rejeté.
Personnaliser l’exemple
-
- limitez la liste d’autorisation du proxy aux endpoints réellement nécessaires à votre produit
-
- conservez l’environnement de travail en interne pendant que vous créez une interface plus claire pour les utilisateurs
-
- remplacez le testeur générique par des parcours dédiés une fois l’intégration stabilisée