Discorso condiviso/Accesso al sito statico

Ciao a tutti,

Ecco la mia situazione. Sto cercando di installare Discourse su talk.example.com mantenendo un sito web su www.example.com. Vorrei che, quando qualcuno accede al sito Discourse, risulti automaticamente connesso anche sul sito www. Se si disconnette da Discourse, dovrebbe essere disconnesso anche da www. Ho letto molte discussioni qui e la risposta più comune sembra essere l’uso di SSO. Tuttavia, non credo che questa soluzione possa funzionare nel mio caso, e ecco perché.

Il sito su www.example.com è un sito statico creato con Hugo. Per chi non lo conoscesse, pensate a Jekyll. Quindi non c’è alcun database o backend di alcun tipo. Non è un’“applicazione”. Di fatto, vorrei che Discourse fungesse da un backend fittizio per questo sito statico. Se un utente ha notifiche non lette su Discourse, vorrei poterle mostrare anche sul sito statico.

L’unico modo che mi viene in mente per realizzare questo è tramite i cookie di Discourse che non includano il sottodominio, ma dalle mie ricerche finora sembra che Discourse non supporti questa funzionalità.

Qualche idea?

Questa è una sfida interessante.

Se il sito fosse dinamico con un backend e avessi l’SSO tra Discourse e il sito, ci sarebbe un percorso chiaro da seguire. Il tuo backend conoscerebbe l’utente e potrebbe utilizzare una chiave API amministrativa per interrogare le notifiche di Discourse per l’utente corrente e inviarle insieme alla pagina a ogni richiesta.

Poiché il sito è una pagina statica, non ha davvero uno stato di accesso, vero?

Abbiamo la possibilità di Embedding a list of Discourse Topics in another site e Embed Discourse comments on another website via Javascript, entrambi funzionanti con siti statici.

Penso che creare una nuova soluzione per le notifiche sia un’ottima idea!

Esatto. È solo HTML, CSS e JavaScript front-end standard.

In uno scenario ideale, mi piacerebbe poter utilizzare JavaScript sul sito statico, eseguito nel browser, per recuperare dati da Discourse.

Le notifiche sono un esempio e un widget incorporato per questo sarebbe ottimo.

Un altro esempio: mi piacerebbe poter impostare un campo utente su Discourse da far compilare agli utenti. Poi, sul sito statico, poter accedere a quel campo utente per modificare il modo in cui viene renderizzato il contenuto (tramite JavaScript). Ad esempio, per riordinare i contenuti e personalizzarli per l’utente.


So che sarà un hack non supportato, ma esiste un modo per modificare il modo in cui Discourse imposta il cookie di sessione in modo che non includa il sottodominio, e che sopravviva agli aggiornamenti?