Mercure-Hub: Authentifizierung von Abonnenten
Diese Dokumentation ist Teil des Erste Schritte-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Wie man mit Mercure-hub beginnt.
👋 Willkommen in der Stackhero-Dokumentation!
Stackhero bietet einen vollständig verwalteten Mercure-Hub Cloud Service, der darauf ausgelegt ist, die Bereitstellung von Echtzeitdaten einfach und zuverlässig zu gestalten. Sie profitieren von:
- Unbegrenzten Anfragen und Nachrichtengrößen für maximale Flexibilität.
- Einer individuellen Domain mit integrierter HTTPS-Sicherheit (zum Beispiel https://real-time.ihr-unternehmen.com).
- Ein-Klick-Updates, um Ihren Hub mühelos immer auf dem neuesten Stand zu halten.
- Hoher Performance und starker Sicherheit auf einer privaten, dedizierten Infrastruktur.
- Mehrere Regionen: 🇪🇺 Europa und 🇺🇸 USA für eine latenzarme Bereitstellung.
Schnell startklar: In nur 5 Minuten können Sie Ihre Mercure-Hub Cloud Hosting Umgebung bereitstellen und Echtzeit-Updates an Ihre Anwendungen senden.
In den vorherigen Beispielen waren die Abonnenten nicht authentifiziert und Sie mussten "anonyme Abonnenten" im Stackhero-Dashboard zulassen.
Um Abonnenten zu authentifizieren, generieren Sie ein JWS (JSON Web Signature) mit dem im Stackhero-Dashboard definierten 'Subscriber JWT key'. Das JWS wird dann entweder über Browser-Cookies oder den authorization-Header gesendet.
Da die Server-Sent Events API keine benutzerdefinierten Header-Definitionen unterstützt, müssen Cookies verwendet werden. Die Verwendung von Cookies bedeutet jedoch, dass Ihr Mercure-hub-Server und Ihr Client dieselbe Domain (oder Subdomain) teilen müssen.
Wenn Sie SSE über verschiedene Domains hinweg verwenden möchten, ziehen Sie ein EventSource-Polyfill in Betracht, das Header-Definitionen ermöglicht. Eine Option ist verfügbar unter https://github.com/Yaffle/EventSource.
Zuerst generieren Sie ein JWS für Ihren Client auf Ihrer Serverseite. Ein Beispiel ist in backend/subscriberJwsGenerator.js verfügbar. Geben Sie einfach Ihr Subscriber JWT ein und führen Sie das Skript mit node subscriberJwsGenerator.js aus.
Dann füllen Sie im Frontend in der Datei frontend/subscriberWithAuthorization.html Ihren Endpoint und das generierte JWS aus. Öffnen Sie die Datei in Ihrem Browser und Mercure-hub funktioniert nun mit Authentifizierung!
Vergessen Sie nicht, "Anonyme Abonnenten zulassen" im Stackhero-Dashboard zu deaktivieren!