La autenticación exige que los usuarios inicien sesión antes de acceder a tu documentación.Cuando habilites la autenticación, los usuarios deberán iniciar sesión para acceder a cualquier contenido. Puedes configurar páginas o grupos específicos como públicos mientras mantienes otras páginas protegidas.
En la sección Password Protection, introduce una contraseña segura
Después de introducir una contraseña, tu sitio se vuelve a implementar automáticamente. Cuando la implementación haya finalizado, cualquiera que visite tu sitio deberá introducir la contraseña para acceder a tu contenido.
2
Distribuye el acceso.
Comparte de forma segura la contraseña y la URL de la documentación con los usuarios autorizados.
Alojas tu documentación en docs.foo.com y necesitas un control de acceso básico sin hacer seguimiento de usuarios individuales. Quieres evitar el acceso público sin complicar la configuración.Crea una contraseña segura en tu dashboard. Comparte las credenciales con los usuarios autorizados. ¡Eso es todo!
En la sección Custom Authentication, haz clic en Mintlify Auth.
Haz clic en Enable Mintlify Auth.
Después de habilitar la autenticación de Mintlify, tu sitio se volverá a implementar automáticamente. Una vez que finalice la implementación, cualquier persona que visite tu sitio deberá iniciar sesión en tu organización de Mintlify para acceder a tu contenido.
Alojas tu documentación en docs.foo.com y todo tu equipo tiene acceso a tu dashboard. Quieres restringir el acceso solo a los miembros del equipo.Habilita la autenticación de Mintlify en la configuración de tu dashboard.Verifica el acceso del equipo comprobando que todos los miembros del equipo estén activos en tu organización.
En la sección Custom Authentication, haz clic en OAuth.
Configura estos campos:
Authorization URL: Tu endpoint de OAuth.
Client ID: Tu identificador de cliente de OAuth 2.0.
Client Secret: Tu secreto de cliente de OAuth 2.0.
Scopes (opcional): Permisos que se van a solicitar. Copia la cadena de scope completa (por ejemplo, para un scope como provider.users.docs, copia el provider.users.docs completo). Usa varios scopes si necesitas diferentes niveles de acceso.
Additional authorization parameters (opcional): Parámetros de consulta adicionales que se agregarán a la solicitud de autorización inicial.
Token URL: Tu endpoint de intercambio de tokens de OAuth.
Info API URL (opcional): Endpoint en tu servidor al que Mintlify llama para obtener información del usuario. Obligatorio para el control de acceso basado en grupos. Si se omite, el flujo de OAuth solo verifica la identidad.
Logout URL (opcional): La URL de cierre de sesión nativa de tu proveedor de OAuth. Mintlify redirige a los usuarios a esta URL con una solicitud GET cuando cierran sesión. Mintlify no agrega parámetros de consulta, así que incluye cualquier parámetro (por ejemplo, returnTo) directamente en la URL. Configura una página a la que redirigir a los usuarios tras un cierre de sesión correcto.
Redirect URL (opcional): La URL a la que se redirigirá a los usuarios después de la autenticación.
Haz clic en Guardar cambios.
Después de configurar tus ajustes de OAuth, tu sitio se vuelve a implementar. Cuando finalice la implementación, cualquier persona que visite tu sitio deberá iniciar sesión en tu proveedor de OAuth para acceder a tu contenido.
Agrega la Redirect URL como una URL de redirección autorizada en tu servidor OAuth.
3
Crea tu endpoint de información de usuario (opcional).
Para habilitar el control de acceso basado en grupos, crea un endpoint de API que:
Responda a solicitudes GET.
Acepte un encabezado Authorization: Bearer <access_token> para la autenticación.
Devuelva los datos de usuario en el formato User. Consulta Formato de datos de usuario para obtener más información.
Mintlify llama a este endpoint con el token de acceso de OAuth para obtener la información del usuario. No se envían parámetros de consulta adicionales.Agrega la URL de este endpoint al campo Info API URL en tus ajustes de autenticación.
Alojas tu documentación en foo.com/docs y tienes un servidor OAuth existente en auth.foo.com que admite el flujo de código de autorización (Authorization Code Flow).Configura los detalles de tu servidor OAuth en tu dashboard:
Crea un endpoint de información de usuario en api.foo.com/docs/user-info, que requiera un token de acceso OAuth con el scope provider.users.docs, y devuelva:
Controla la duración de la sesión con el campo expiresAt en la respuesta de información de usuario. Este es un timestamp Unix (segundos desde el inicio de la época Unix) que indica cuándo debe expirar la sesión. Consulta Formato de datos de usuario para más detalles.
Configura tu servidor OAuth para permitir redirecciones a tu URL de callback.
En la sección Custom Authentication, haz clic en JWT.
Introduce la URL de tu flujo de inicio de sesión existente.
Haz clic en Save changes.
Haz clic en Generate new key.
Almacena tu clave de forma segura donde tu backend pueda acceder a ella.
Después de generar una clave privada, tu sitio se vuelve a implementar. Cuando termina la implementación, cualquier persona que visite tu sitio debe iniciar sesión en tu sistema de autenticación JWT para acceder a tu contenido.
2
Integra la autenticación de Mintlify en tu flujo de inicio de sesión.
Modifica tu flujo de inicio de sesión existente para incluir estos pasos después de la autenticación del usuario:
Crea un JWT que contenga la información del usuario autenticado en el formato User. Consulta Formato de datos de usuario para obtener más información.
Firma el JWT con tu clave secreta, usando el algoritmo EdDSA.
Crea una URL de redirección de vuelta a la ruta /login/jwt-callback de tu documentación, incluyendo el JWT como el hash.
Hospedas tu documentación en docs.foo.com con un sistema de autenticación existente en foo.com. Quieres ampliar tu flujo de inicio de sesión para conceder acceso a la documentación manteniéndola separada de tu dashboard (o no tienes un dashboard).Crea un endpoint de inicio de sesión en https://foo.com/docs-login que amplíe tu autenticación existente.Después de verificar las credenciales del usuario:
Genera un JWT con los datos del usuario en el formato de Mintlify.
Firma el JWT y redirige a https://docs.foo.com/login/jwt-callback#{SIGNED_JWT}.
Reportar código incorrecto
Copiar
Preguntar a la IA
import * as jose from 'jose';import { Request, Response } from 'express';const TWO_WEEKS_IN_MS = 1000 * 60 * 60 * 24 * 7 * 2;const signingKey = await jose.importPKCS8(process.env.MINTLIFY_PRIVATE_KEY, 'EdDSA');export async function handleRequest(req: Request, res: Response) { const user = { expiresAt: Math.floor((Date.now() + TWO_WEEKS_IN_MS) / 1000), // vencimiento de la sesión de 2 semanas groups: res.locals.user.groups, }; const jwt = await new jose.SignJWT(user) .setProtectedHeader({ alg: 'EdDSA' }) .setExpirationTime('10 s') // vencimiento del JWT de 10 segundos .sign(signingKey); return res.redirect(`https://docs.foo.com/login/jwt-callback#${jwt}`);}
Cuando un usuario no autenticado intenta acceder a una página protegida, la redirección a tu URL de inicio de sesión conserva el destino previsto del usuario.
El usuario intenta visitar una página protegida: https://docs.foo.com/quickstart.
Redirige a tu URL de inicio de sesión con un parámetro de consulta llamado redirect: https://foo.com/docs-login?redirect=%2Fquickstart.
Después de la autenticación, redirige a https://docs.foo.com/login/jwt-callback?redirect=%2Fquickstart#{SIGNED_JWT}.
Cuando uses Autenticación, todas las páginas están protegidas de forma predeterminada. Puedes hacer que páginas específicas sean visibles sin autenticación a nivel de página o de grupo con la propiedad public.
Cuando usas OAuth o autenticación con JWT (JSON Web Token), puedes restringir páginas específicas a ciertos grupos de usuarios. Esto es útil cuando quieres que distintos usuarios vean contenido diferente según su rol o atributos.Administra los grupos mediante los datos del usuario enviados durante la autenticación. Consulta Formato de datos de usuario para más detalles.
Especifica qué groups pueden acceder a páginas determinadas usando la propiedad groups en el frontmatter.
Example page restricted to the admin group
Reportar código incorrecto
Copiar
Preguntar a la IA
---title: "Panel de administración"groups: ["admin"]---
Los usuarios deben pertenecer al menos a uno de los groups enumerados para acceder a la página. Si un usuario intenta acceder a una página sin el group requerido, recibirá un error 404.
Cuando utilices autenticación OAuth o JWT, tu sistema devolverá datos de usuario que controlan la duración de la sesión y la pertenencia a grupos para el control de acceso.
Reportar código incorrecto
Copiar
Preguntar a la IA
type User = { expiresAt?: number; groups?: string[];};
Momento de expiración de la sesión en segundos desde el epoch. Cuando la hora actual supera este valor, el usuario debe volver a autenticarse.
Para JWT: Esto es diferente del claim exp del JWT, que determina cuándo un JWT se considera inválido. Configura el claim exp del JWT con una duración corta (10 segundos o menos) por seguridad. Usa expiresAt para la duración real de la sesión (de horas a semanas).
Lista de los grupos a los que pertenece el usuario. Las páginas cuyo frontmatter tenga un groups coincidente son accesibles para este usuario.Ejemplo: Un usuario con groups: ["admin", "engineering"] puede acceder a páginas etiquetadas con los grupos admin o engineering.