Mercure-Hub: Autenticación de suscriptores
Esta documentación forma parte de la guía Introducción. Consulte la guía completa aquí: Cómo empezar con Mercure-hub.
👋 ¡Bienvenido a la documentación de Stackhero!
Stackhero ofrece un servicio totalmente gestionado de Mercure-Hub en la nube, diseñado para que la entrega de datos en tiempo real sea sencilla y fiable. Obtendrá:
- Solicitudes y tamaños de mensajes ilimitados para una flexibilidad total.
- Un dominio personalizado con HTTPS integrado (por ejemplo, https://real-time.su-empresa.com).
- Actualizaciones con un solo clic para mantener su hub siempre actualizado sin complicaciones.
- Alto rendimiento y gran seguridad sobre una infraestructura privada y dedicada.
- Múltiples regiones disponibles: 🇪🇺 Europa y 🇺🇸 USA para una entrega de baja latencia.
Póngase en marcha rápidamente: solo necesita 5 minutos para desplegar su entorno de Mercure-Hub cloud hosting y empezar a enviar actualizaciones en tiempo real a sus aplicaciones.
En los ejemplos anteriores, los suscriptores no estaban autenticados y necesitaba permitir "suscriptores anónimos" en el panel de Stackhero.
Para autenticar a los suscriptores, genera un JWS (JSON Web Signature) utilizando la 'Subscriber JWT key' definida en el panel de Stackhero. El JWS se envía luego usando cookies del navegador o el encabezado authorization.
Dado que la API Server-Sent Events no admite definiciones de encabezados personalizados, se deben usar cookies. Sin embargo, el uso de cookies implica que su servidor Mercure-hub y su cliente deben compartir el mismo dominio (o subdominio).
Si desea usar SSE entre diferentes dominios, considere un polyfill de EventSource que permita definiciones de encabezados. Una opción está disponible en https://github.com/Yaffle/EventSource.
Primero, genere un JWS para su cliente en su back end. Un ejemplo está disponible en backend/subscriberJwsGenerator.js. Simplemente ingrese su JWT de suscriptor y ejecute el script usando node subscriberJwsGenerator.js.
Luego, en el front end, en el archivo frontend/subscriberWithAuthorization.html, complete su endpoint y el JWS generado. Abra el archivo en su navegador y Mercure-hub ahora funcionará con autenticación.
¡No olvide desmarcar "Permitir suscriptores anónimos" en el panel de Stackhero!