Crea un entorno de trabajo autenticado con Next.js y OAuth, con un proxy unificado de Phaseo.
Proyecto de ejemplo
- GitHub: examples/oauth-client-nextjs
- Ruta local del repositorio:
examples/oauth-client-nextjs
Qué incluye esta aplicación
- inicio de sesión con OAuth 2.1 + PKCE
- almacenamiento y renovación de tokens asociados a la sesión
- un proxy unificado para las rutas de control y generación
- búsqueda de modelos
- un flujo de chat mediante
/responses - un probador genérico para otras rutas del gateway
Cuándo empezar con este ejemplo
Usa este ejemplo cuando:- los usuarios finales deben iniciar sesión con acceso delegado
- necesitas algo más que una página de chat sencilla
- quieres una ruta segura en el servidor para varios endpoints de Phaseo
- solo necesitas una interfaz de chat sencilla con una clave de API
- primero quieres un script o una CLI
Archivos principales
app/page.tsxapp/dashboard/page.tsxapp/dashboard/GatewayWorkbench.tsxapp/api/gateway/[...surface]/route.tslib/oauth.tslib/session.ts
Por qué el ejemplo está estructurado así
1. OAuth se mantiene separado de la lógica del gateway
La aplicación separa:- la lógica de inicio de autenticación y del callback
- la gestión cifrada de sesiones
- la renovación de tokens
2. Una sola ruta de proxy gestiona las llamadas al gateway
La ruta de proxy comodín:- comprueba la lista de endpoints permitidos
- añade el token bearer actual
- renueva los tokens cuando hace falta
- reenvía los cuerpos de solicitud y respuesta
3. El panel también funciona como entorno de trabajo interno
La página del entorno de trabajo no solo sirve para chatear:- busca modelos
- prueba
/responses - también permite probar endpoints que no son de chat
Requisitos previos
-
- Node.js y un administrador de paquetes compatible
-
- un cliente OAuth configurado con la URL de callback local
-
- un secreto de sesión seguro
Ejecuta el ejemplo
NEXT_PUBLIC_OAUTH_CLIENT_IDOAUTH_CLIENT_SECRETNEXT_PUBLIC_PHASEO_URLNEXT_PUBLIC_REDIRECT_URISESSION_SECRETNEXT_PUBLIC_GATEWAY_URL
http://localhost:3000.
Comprueba el resultado
- El inicio de sesión vuelve al callback configurado y crea una sesión.
- El panel puede buscar modelos a través del proxy.
- Una solicitud a la Responses API se completa sin exponer un token de acceso al navegador.
- Se rechaza cualquier endpoint que no esté en la lista de permitidos del proxy.
Adapta el ejemplo
-
- limita la lista de permitidos del proxy a los endpoints que realmente necesita tu producto
-
- mantén el entorno de trabajo para uso interno mientras creas una interfaz más sencilla para los usuarios
-
- sustituye el probador genérico por flujos específicos del producto cuando la integración se estabilice