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 una solución Mercure-Hub cloud lista para usar que proporciona una serie de beneficios, incluyendo:

  • Solicitudes y tamaños de mensajes ilimitados.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://real-time.su-empresa.com).
  • Actualizaciones sin esfuerzo con solo un clic.
  • Rendimiento óptimo y seguridad robusta impulsados por una VM privada y dedicada.
  • Disponible en 🇪🇺 Europa y 🇺🇸 USA.

Ahorre tiempo y simplifique su vida: solo toma 5 minutos probar la solución de Mercure-Hub cloud hosting de Stackhero!

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!