OAuth 2.1
Deja que otras aplicaciones inicien sesión a sus usuarios con una cuenta de Bot-Hosting, como Iniciar sesión con Discord. Basado en OAuth 2.1 y PKCE, así que funciona con cualquier cliente OAuth estándar.
Usa una clave de API para controlar tu propia cuenta. Usa OAuth cuando crees una aplicación que actúa en las cuentas de otras personas, para que inicien sesión y den su consentimiento en lugar de pegar una clave. Los asistentes de IA como ChatGPT se conectan justo con este flujo.
El flujo
- 01 Crea una aplicación Registra un nombre y una URI de redirección en tu configuración de desarrollador. Obtienes un client_id público, sin secreto.
- 02 Envía a los usuarios a autorizar Redirige a /oauth/authorize con PKCE. El usuario inicia sesión y aprueba los permisos.
- 03 Intercambia el código Vuelven con un code. Envíalo por POST al endpoint de token para obtener un access token.
- 04 Llama a la API en su nombre Envía el token como Bearer a /api/v1 y renuévalo en segundo plano.
Endpoints
| Endpoints | Finalidad |
|---|---|
| GET /oauth/authorize | Pantalla de consentimiento del usuario, abierta en el navegador. |
| POST /api/oauth/token | Intercambia un código por un token, o renueva uno. |
| POST /api/oauth/register | Registro dinámico de clientes (RFC 7591), opcional. |
| GET /.well-known/oauth-authorization-server | Metadatos de descubrimiento. |
| GET /.well-known/oauth-protected-resource | Metadatos del recurso, usados por los clientes MCP. |
Vida útil de los tokens
Código de autorización 10 min De un solo uso, vinculado a PKCE.
Access token 7 días Bearer para las llamadas a /api/v1.
Refresh token 30 días Se rota en cada uso.
Renovación
Cada renovación devuelve un refresh token nuevo y revoca el anterior: sobrescribe siempre el que tengas guardado. Si una renovación devuelve invalid_grant, lleva al usuario de nuevo al paso 1.
Seguridad
- Guarda los tokens en el servidor, asociados a tu usuario. Nunca los envíes al navegador ni a un repositorio público.
- Los tokens se revocan en el momento en que el usuario desconecta tu aplicación.
- Usa URIs de redirección https en producción. http se acepta para pruebas locales.
- Los tokens de OAuth nunca conceden permisos de administración, sean cuales sean los permisos aprobados.