Ho un sito WordPress che è il provider SSO per Discourse utilizzando il plugin WPDiscourse, il Forum è pubblico, ma ha alcuni gruppi privati.
Quando voglio aggiungere pulsanti che portano gli utenti dal mio sito WordPress a un Gruppo privato in Discourse, sto usando l’URL SSO come menzionato qui, in modo che gli utenti non finiscano sulla pagina “Oops! Quella pagina non esiste o è privata.”.
Ma quando gli utenti si sono già autenticati tramite SSO in Discourse, tornano indietro e premono gli stessi pulsanti, arriveranno di nuovo alla pagina di accesso, anche se hanno selezionato la casella “Ricordami” durante l’accesso. Idealmente, dovrebbero essere in grado di navigare liberamente nei gruppi privati una volta autenticati in Discourse SSO.
C’è un modo migliore per impostare questo?
Ho pensato di aggiungere del codice alla pagina di accesso di WP e verificare se l’utente ha già effettuato l’accesso in Discourse, e in tal caso, reindirizzare alla pagina nell’argomento “return_path” nell’URL. Sarebbe questa la soluzione? Se sì, quali funzioni o chiamate API potrei usare per ottenerla?
Se gli utenti hanno già effettuato l’accesso al tuo sito WordPress, ciò non dovrebbe accadere. Puoi chiarire se gli utenti a cui sta succedendo questo hanno effettuato l’accesso a WordPress? Se hanno effettuato l’accesso, ci si aspetta che vengano reindirizzati silenziosamente all’URL di Discourse che hai impostato nell’argomento return_path.
Grazie Simon, sì, l’utente ha effettuato l’accesso a WordPress.
La stranezza nel mio scenario è che ho un sito WP principale (WPSite1) che è il Provider DiscourseConnect per Discourse utilizzando WP Discourse,
Poi ho un secondo sito WP (WPSite2) che sincronizza il database degli utenti con WPSite1 utilizzando il plugin WP Remote User Synch.
Non so perché dovrebbe interferire con il comportamento previsto che hai menzionato, perché quando accedo a WPSite2 e poi navigo su WPSite1, sono già loggato anche su WPSite1.
Ma quello che sta succedendo è che anche dopo aver effettuato l’accesso a WPSite1, che è il Provider DiscourseConnect, e clicco su un URL come https://discourse.example.com/session/sso?return_path=/g/private_group, mi porta al modulo di accesso SSO di WP.
Lo scenario 2 è il caso.
Rivedrò le istruzioni, ma credo che tutto sia impostato correttamente poiché l’accesso SSO funziona, il problema è che la pagina di accesso non riconosce che l’utente è già autenticato.