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 Nachrichten­größ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!