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 dans la documentation Stackhero !
Stackhero offre un service Mercure-Hub cloud entièrement géré, conçu pour simplifier et fiabiliser la diffusion de données en temps réel. Vous profitez de :
- Requêtes et tailles de messages illimitées pour une flexibilité maximale.
- Un domaine personnalisé avec la sécurité HTTPS intégrée (par exemple, https://real-time.votre-entreprise.com).
- Des mises à jour en un clic pour garder votre hub à jour sans aucune complication.
- Une performance élevée et une sécurité avancée sur une infrastructure privée et dédiée.
- Plusieurs régions disponibles : 🇪🇺 Europe et 🇺🇸 USA pour une diffusion à faible latence.
Mettez-vous en route rapidement : il suffit de 5 minutes pour déployer votre environnement Mercure-Hub cloud hosting et commencer à envoyer des mises à jour en temps réel à vos applications.
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 !