Omniauth jwt reindirizzamento

Dopo questo, sono riuscito a configurare l’SSO con JWT.

Con la libreria discourse-omniauth-jwt, non sono sicuro di come reindirizzare gli utenti dopo l’accesso.

Quando un utente accede al mio sito, ottengo il JWT e lo faccio accedere a Discourse immediatamente. Alla fine di questo flusso, però, l’utente finisce sul sito di Discourse invece di tornare al mio.

Ho provato a consultare i metodi di reindirizzamento della libreria omniauth, che includono il parametro origin e il cookie destination_url da qui, ma nessuno di questi sembra funzionare.

Forse @eviltrout può fare chiarezza su questo.

EDIT: Mi sono appena reso conto di aver guardato due librerie diverse: omniauth e i callback omniauth di Discourse. Comunque, sono ancora incerto su come far funzionare tutto ciò.

Quindi il problema è:

  1. un utente accede al tuo sito
  2. lo reindirizzi a Discourse per effettuare l’accesso lì
  3. finisce per essere loggato su Discourse?

Non credo che questo sia un percorso supportato. In generale, un utente si trova su Discourse, clicca su “Accedi”, visita il tuo sito per l’autenticazione e viene reindirizzato indietro. Se un utente accede direttamente sul tuo sito, dovrebbe rimanere sul tuo sito.

Solitamente lo gestiamo mantenendo Discourse disconnesso, ma quando l’utente clicca su “Accedi” viene reindirizzato senza dover compilare nuovamente il modulo di autenticazione.

Hmm, giusto, ha senso. Accedere non serve a molto ora che ci penso, dato che l’embed non può utilizzare la sessione di autenticazione.

Quindi, gli embed utilizzano la sessione di autenticazione (o il cookie di sessione) per mostrare o nascondere i topic privati di Discourse.

Questo flusso di autenticazione ha senso, ma per iniziare, reindirizzerò gli utenti al forum di Discourse per il login in una nuova scheda. Potranno accedere ai topic privati dopo un aggiornamento della pagina.