Mercure-Hub: Authentification des abonnés
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 taille des messages illimitées.
- Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://real-time.votre-entreprise.com).
- Mises à jour simplifiées en un clic.
- Performance optimale et sécurité renforcée 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 abonnés n'étaient pas authentifiés et vous deviez autoriser les "abonnés anonymes" sur le tableau de bord Stackhero.
Pour authentifier les abonnés, 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 transmis via les cookies du navigateur ou l'en-tête authorization.
Comme l'API Server-Sent Events ne permet pas de définir des en-têtes personnalisés, il faut utiliser les cookies. Cependant, l'utilisation des cookies implique que votre serveur Mercure-hub et votre client partagent le même domaine (ou sous-domaine).
Si vous souhaitez utiliser SSE entre différents domaines, envisagez un polyfill EventSource qui permet de définir des en-têtes. Une option est disponible sur https://github.com/Yaffle/EventSource.
Commencez par générer un JWS pour votre client côté serveur. Un exemple est disponible dans backend/subscriberJwsGenerator.js. Il suffit de renseigner votre JWT abonné et d'exécuter le script avec node subscriberJwsGenerator.js.
Ensuite, côté front end, dans le fichier frontend/subscriberWithAuthorization.html, renseignez 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 abonnés anonymes" dans le tableau de bord Stackhero !