Abbiamo un problema nel mantenere l’utente connesso.
Connettiamo Discourse alla nostra app tramite SSO.
Login riuscito e reindirizzamento a Discourse.
Clicca su una bacheca.
Popup “sei stato disconnesso”.
Le nostre ipotesi sono le seguenti:
Il valore di _forum_session nello storage della sessione continua a cambiare quando clicchiamo sulla bacheca.
Quindi, la sessionkey precedente e la nuova sessionkey generata non corrispondono a volte.
Come gestire il valore di forum_session? O come controllare la sequenza di generazione di _forum_session?
Cosa fa apparire questo popup?
versione: 3.5.0.beta1
tipo di distribuzione: self-hosted
tipo di accesso: Discourse SSO Connect
Ciao a tutti,
Attualmente sto gestendo un’istanza Discourse self-hosted all’interno della nostra infrastruttura.
Tutto funziona bene fino al punto di accesso tramite il metodo Discourse SSO Connect (utilizziamo il nostro server di account personalizzato per l’autenticazione).
Tuttavia, stiamo riscontrando un problema in cui, durante un’operazione di ricerca, appare casualmente un popup “Sei stato disconnesso”.
Ciò accade solo nell’ambiente di produzione, non in sviluppo o staging.
Non abbiamo modificato alcun codice open source di Discourse.
La nostra ipotesi è che il cookie _forum_session debba essere aggiornato ad ogni chiamata API, ma per qualche motivo questo aggiornamento fallisce in produzione. Di conseguenza, il cookie di sessione corrente diventa non valido e porta alla disconnessione.
Se qualcuno ha riscontrato un problema simile o ha qualche idea su cosa stia succedendo, apprezzerei molto il vostro aiuto.
Speriamo di risolvere questo problema il prima possibile.
Vorrei capire in quali casi l’aggiornamento di forum_session potrebbe fallire. Per quanto ne so, viene aggiornato ogni volta che entro in una pagina tramite l’intestazione Set-Cookie nella risposta. Non abbiamo modificato alcuna logica correlata, quindi non sono sicuro del motivo per cui occasionalmente non si aggiorna.
È un po’ strano: stiamo eseguendo tre ambienti con la stessa versione (3.5.0.beta1), ma questo problema si verifica solo nell’ambiente di produzione. Gli altri due ambienti (sviluppo e staging) funzionano correttamente, quindi non penso che sia un problema legato alla versione.
Mi chiedo, è la prima volta che questo problema viene segnalato? Ci sono stati rapporti simili in passato?