Flusso di Connettività Discorso

Stiamo cercando di creare una community utilizzando le API di Discourse. Stiamo riscontrando un problema nel flusso.

Il nostro Front end è un’app React e il BE si basa su NodeJS con un’architettura MS. Gestiamo tutto il flusso di autenticazione da parte nostra.

Per quanto ho capito di Discourse Connect,

  1. Il FE crea il payload, con un nonce, informazioni sull’utente e quindi effettua una chiamata a example.com/session/SSO?sso=xx&sig=xx

  2. Discourse quindi effettua una chiamata di ritorno a discourse_connect_url, dove convaliderò il payload e restituirò l’URL di reindirizzamento e gli utenti verranno reindirizzati a Discourse.

Tuttavia, quando creo il payload con le informazioni dell’utente, non riesco a propagarlo dal mio Front End a Discourse e quindi al Backend. Qualcuno può aiutarmi o la mia comprensione è corretta? Ho cercato anche nel forum con soluzioni attese ma senza successo.

Nota che quando inserisco manualmente le informazioni dell’utente dal BE, riesco ad accedere agli utenti a Discourse.

Voglio che il nostro sito web sia il provider di autenticazione per Discourse e che propaghi le informazioni dell’utente dal Front End al BE. Qualcuno può aiutarmi con il flusso o magari con alcuni esempi per Javascript?

1 Mi Piace

Ciao Ankit,
Il flusso è in realtà l’inverso di quanto hai descritto. Quando imposti Discourse Connect sul tuo sito:

  1. Cliccare sul pulsante di accesso ti porterà a discourse_connect_url con 2 parametri get sso e sig.
  2. L’utente inserirà le proprie credenziali su discourse_connect_url e verrà autenticato dal tuo sito; se l’autenticazione ha successo, dovrai decodificare l’sso e seguire gli ulteriori passaggi descritti nell’argomento Discourse Connect.

Ho un problema simile con il flusso, non voglio che il mio utente acceda a Discourse e faccia clic su login, ho bisogno che il mio utente acceda alla mia piattaforma e faccia clic sul pulsante Access Discourse e acceda a Discourse in modo trasparente.

È possibile che la mia piattaforma generi un “nonce” per il mio utente tramite API in modo sicuro, senza che debba accedere prima a Discourse e fare clic su login?

Nota: posso farlo da solo accedendo a Discourse e facendo clic sul pulsante per loro, senza che lo sappiano, ma questo non è sicuro per l’applicazione.

L’opzione più semplice è che il pulsante “Accedi a Discourse” sia un link a /login sul forum.