Per quanto ne so, lo stesso problema è stato menzionato due volte e si è detto che fosse stato risolto nel 2018 (Discourse doesn't redirect to return_sso_url after user logs in on private site) e nel 2015 (Login redirect during sso provider login). Tuttavia, sto ancora riscontrando lo stesso problema.
Nella nostra organizzazione abbiamo installato Discourse. Avendo un nostro database di account utente, utilizziamo il nostro sito web SSO personalizzato per consentire agli utenti di accedere a Discourse, seguendo le istruzioni disponibili su Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso). Funziona bene.
Inoltre, abbiamo anche WordPress, Rocket Chat e un’app web Tornado personalizzata. Questi servizi dipendono da Discourse come provider SSO.
Per WordPress stiamo utilizzando wp-discourse. Per Rocket Chat e l’app web Tornado abbiamo seguito le istruzioni presenti su Use Discourse as an identity provider (SSO, DiscourseConnect).
Il flusso di accesso funziona correttamente se l’utente è già loggato su Discourse. Tuttavia, se l’utente non è già loggato su Discourse, nessuno dei flussi di accesso dei servizi (ad esempio WordPress/Rocket Chat/app web Tornado) funziona correttamente. Quando un utente tenta di accedere a WordPress, Rocket Chat o all’app web Tornado, viene reindirizzato a discourse.com/login. Quindi, l’utente clicca sul pulsante di accesso, che lo reindirizza al nostro sito SSO personalizzato. Qui esegue l’accesso, dopodiché viene reindirizzato a discourse.com, ma non al servizio desiderato (ad esempio WordPress, Rocket Chat o l’app web Tornado).
Solo un piccolo approfondimento: la funzione wp-discourse “Sync Logout with Discourse” non funziona. Quando un utente esce da WordPress, rimane comunque loggato su Discourse.
Sto affrontando questo problema da diversi mesi dopo diversi aggiornamenti di Discourse. Ora sto cercando aiuto. Fate sapere se sono necessarie ulteriori informazioni.
Il mio attuale workaround consiste nel reindirizzare l’utente non a /session/sso_provider, ma a /session/sso?return_path=customurl. Lo svantaggio è che viene sempre chiesto all’utente di effettuare l’accesso, anche se è già loggato su Discourse.