Mercure-Hub: Authentification des souscripteurs

Cette documentation fait partie du guide Premiers pas. Consultez le guide complet ici : Comment débuter avec Mercure-hub.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Mercure-Hub cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Requêtes et tailles de messages illimitées.
  • Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://real-time.votre-entreprise.com).
  • Mises à jour faciles en un clic.
  • Performance optimale et sécurité robuste grâce à une VM privée et dédiée.
  • Disponible en 🇪🇺 Europe et 🇺🇸 USA.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Mercure-Hub cloud hosting de Stackhero !

Dans les exemples précédents, les souscripteurs n'étaient pas authentifiés et vous deviez autoriser les "souscripteurs anonymes" sur le tableau de bord Stackhero.

Pour authentifier les souscripteurs, vous générez un JWS (JSON Web Signature) en utilisant la "Subscriber JWT key" définie dans le tableau de bord Stackhero. Le JWS est ensuite envoyé via des cookies du navigateur ou l'en-tête authorization.

Étant donné que l'API Server-Sent Events ne prend pas en charge les définitions d'en-têtes personnalisés, les cookies doivent être utilisés. Cependant, l'utilisation de cookies implique que votre serveur Mercure-hub et votre client doivent partager le même domaine (ou sous-domaine).

Si vous souhaitez utiliser SSE entre différents domaines, envisagez un polyfill EventSource qui permet les définitions d'en-têtes. Une option est disponible sur https://github.com/Yaffle/EventSource.

Tout d'abord, générez un JWS pour votre client sur votre back end. Un exemple est disponible dans backend/subscriberJwsGenerator.js. Entrez simplement votre JWT de souscripteur et exécutez le script avec node subscriberJwsGenerator.js.

Ensuite, sur le front end, dans le fichier frontend/subscriberWithAuthorization.html, remplissez votre endpoint et le JWS généré. Ouvrez le fichier dans votre navigateur et Mercure-hub fonctionnera désormais avec authentification !

N'oubliez pas de décocher "Autoriser les souscripteurs anonymes" dans le tableau de bord Stackhero !