Mercure-Hub: Autenticazione degli abbonati
Questa documentazione fa parte della guida Iniziare. Consulta la guida completa qui: Come iniziare con Mercure-hub.
👋 Benvenuti nella documentazione di Stackhero!
Stackhero offre una soluzione Mercure-Hub cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:
- Richieste e dimensioni dei messaggi illimitate.
- Nome di dominio personalizzabile protetto con HTTPS (ad esempio, https://real-time.tua-azienda.com).
- Aggiornamenti facili con un solo clic.
- Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
- Disponibile in 🇪🇺 Europa e 🇺🇸 USA.
Risparmia tempo e semplifica la tua vita: bastano solo 5 minuti per provare la soluzione di Mercure-Hub cloud hosting di Stackhero!
Negli esempi precedenti, gli abbonati non erano autenticati e dovevate consentire "abbonati anonimi" sulla dashboard di Stackhero.
Per autenticare gli abbonati, generate un JWS (JSON Web Signature) utilizzando la 'Subscriber JWT key' definita nella dashboard di Stackhero. Il JWS viene poi inviato tramite cookie del browser o l'header authorization.
Poiché l'API Server-Sent Events non supporta le definizioni di header personalizzati, devono essere utilizzati i cookie. Tuttavia, l'uso dei cookie implica che il vostro server Mercure-hub e il client devono condividere lo stesso dominio (o sottodominio).
Se desiderate utilizzare SSE tra domini diversi, considerate un polyfill EventSource che consente le definizioni di header. Un'opzione è disponibile su https://github.com/Yaffle/EventSource.
Per prima cosa, generate un JWS per il vostro client sul vostro back end. Un esempio è disponibile in backend/subscriberJwsGenerator.js. Inserite semplicemente il vostro JWT di abbonato ed eseguite lo script con node subscriberJwsGenerator.js.
Poi, sul front end, nel file frontend/subscriberWithAuthorization.html, inserite il vostro endpoint e il JWS generato. Aprite il file nel vostro browser e Mercure-hub funzionerà ora con autenticazione!
Non dimenticate di deselezionare "Consenti abbonati anonimi" nella dashboard di Stackhero!