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 bei der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Mercure-Hub Cloud Lösung, die zahlreiche Vorteile bietet, darunter:

  • Unbegrenzte Anfragen und Nachrichtengrößen.
  • Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://real-time.ihre-firma.com).
  • Mühelose Updates mit nur einem Klick.
  • Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.
  • Verfügbar in 🇪🇺 Europa und 🇺🇸 USA.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Mercure-Hub Cloud Hosting Lösung von Stackhero auszuprobieren!

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!