Mercure-Hub: Authenticatie van abonnees
Deze documentatie maakt deel uit van de Aan de slag-gids. Bekijk de volledige gids hier: Hoe te beginnen met Mercure-hub.
👋 Welkom bij de Stackhero-documentatie!
Stackhero biedt een kant-en-klare Mercure-Hub cloud oplossing die tal van voordelen biedt, waaronder:
- Onbeperkte verzoeken en berichtgroottes.
- Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://real-time.uw-bedrijf.com).
- Moeiteloze updates met slechts één klik.
- Optimale prestaties en robuuste beveiliging aangedreven door een privé en dedicated VM.
- Beschikbaar in 🇪🇺 Europa en 🇺🇸 USA.
Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Mercure-Hub cloud hosting oplossing van Stackhero te proberen!
In de eerdere voorbeelden waren abonnees niet geauthenticeerd en moest je "anonieme abonnees" toestaan op het Stackhero-dashboard.
Om abonnees te authenticeren, genereer je een JWS (JSON Web Signature) met behulp van de 'Subscriber JWT key' die is gedefinieerd in het Stackhero-dashboard. De JWS wordt vervolgens verzonden met behulp van browsercookies of de authorization header.
Aangezien de Server-Sent Events API geen aangepaste headerdefinities ondersteunt, moeten cookies worden gebruikt. Het gebruik van cookies impliceert echter dat je Mercure-hub server en client hetzelfde domein (of subdomein) moeten delen.
Als je SSE over verschillende domeinen wilt gebruiken, overweeg dan een EventSource polyfill die headerdefinities toestaat. Een optie is beschikbaar op https://github.com/Yaffle/EventSource.
Genereer eerst een JWS voor je client aan je serverzijde. Een voorbeeld is beschikbaar in backend/subscriberJwsGenerator.js. Voer eenvoudig je subscriber JWT in en voer het script uit met node subscriberJwsGenerator.js.
Vervolgens, aan de front-end, in het bestand frontend/subscriberWithAuthorization.html, vul je je endpoint en de gegenereerde JWS in. Open het bestand in je browser en Mercure-hub werkt nu met authenticatie!
Vergeet niet "Allow anonymous subscribers" uit te vinken in het Stackhero-dashboard!