Inicio de sesión personalizado
El inicio de sesión personalizado para los lectores en DeveloperHub se proporciona mediante JSON Web Tokens (JWT). Al usar el inicio de sesión con JWT:
Usted controla quién tiene acceso a su documentación sin tener que compartir una contraseña o enlace global.
Puede personalizar la documentación para el lector que ha iniciado sesión.
Usted controla cuándo caduca el acceso.
El mismo token firmado puede identificar a los lectores en un proyecto público, donde no es necesario iniciar sesión y la identificación se usa únicamente para personalizar la documentación y aplicar audiencias. Consulte Contenido condicional.
Cómo funciona el inicio de sesión con JWT
Cuando el inicio de sesión con JWT está habilitado, el flujo de inicio de sesión sería el siguiente:
El lector llegaría al sitio de documentación sin autenticarse y sería redirigido a la URL de inicio de sesión, o bien partiría de su propio sitio web para llegar a la URL de inicio de sesión.
Cuando llegan a la URL de inicio de sesión, sus servidores backend firmarían un token JWT usando una clave de API que tenga el permiso
access.write, construirían una URL que contenga el token JWT y redirigirían al lector a ella. La URL es la de su sitio de documentación.Cuando el lector intenta acceder al sitio de documentación sin autenticarse con el token JWT en la URL, nuestros servidores backend verificarán el token y crearán un token de acceso con la caducidad definida en el token. El lector ya puede acceder al sitio de documentación.
Cuando el token de acceso del lector caduca, ya no puede acceder al contenido y sería redirigido de nuevo a la URL de inicio de sesión, donde este proceso se repite.
Proporcionamos la URL a la que el lector intentó acceder en un parámetro de consulta llamado redirect. Sus servidores pueden leer este parámetro de consulta y usarlo como URL de redirección en lugar de la página de inicio de su documentación.
Cómo habilitar el inicio de sesión con JWT
Para configurar el inicio de sesión con JWT en DeveloperHub, siga estos pasos:
Abra la configuración del proyecto → Acceso.
En la tarjeta Método de acceso, seleccione JWT.
Proporcione una URL de inicio de sesión; obtenga más información sobre la URL de inicio de sesión aquí.
Haga clic en Guardar cambios en el menú superior.

Firma del JWT
Para autorizar y autenticar el acceso a su sitio de documentación, debe firmar un token JWT usando una clave de API que tenga el permiso access.write. Primero, asegúrese de haber generado la clave de API. Los algoritmos de firma compatibles son HS256 y HS512.
Existen numerosas bibliotecas para la mayoría de los lenguajes de programación para firmar JWT; consulte jwt.io para más detalles,
Código de ejemplo para firmar el JWT:
Una vez generada la URL, puede redirigir a su lector a ella para darle acceso a la documentación.
El objeto vars en la carga útil del JWT se usa para evaluar las audiencias de contenido del contenido condicional. Las variables se comparan con las condiciones de audiencia para determinar qué contenido es visible para cada lector, o bien puede indicar directamente las audiencias del lector con _audience.
Para firmar un JWT, necesita una clave de API con el permiso access.write. La clave de API es un secreto y nunca debe compartirse en línea.
Para un acceso sencillo, también puede generar un JWT directamente desde la ventana Gestionar acceso haciendo clic en "Generate JWT" y seleccionando el valor de caducidad.
Aplicación Express de ejemplo
Una aplicación express de ejemplo que puede usar:
Limitar el acceso a un dispositivo
Para limitar un único token JWT de modo que dé acceso solo en un dispositivo, se puede añadir un jti único en la carga útil. Por ejemplo:
En este ejemplo, se usó un UUID para dar unicidad al parámetro jti, pero se puede usar cualquier secuencia aleatoria.
Si se usara el mismo JWT para acceder de nuevo a un proyecto, se denegaría el acceso al lector y se mostraría el mensaje "Token has already been used".
Gestión de errores del inicio de sesión con JWT
Puede proporcionar un error_redirect_url en la carga útil de su JWT. Cuando se produce un error (porque el token ha caducado o falló la verificación de la firma), el usuario será redirigido a esa URL con un parámetro de consulta añadido dh_jwt_error que contiene el mensaje de error.
Need help? Visit our community forums or contact us.