La mia comprensione è che possiamo consentire a Discourse di utilizzare la nostra API per convalidare l’autenticazione e inviare anche alcuni parametri personalizzati. Correggimi se sbaglio.
Quello che vogliamo è utilizzare la nostra pagina di accesso (quando gli utenti fanno clic su “login” in discourse.open…com, dovrebbe aprirsi la nostra pagina di accesso “kan.open..com”). E una volta che l’accesso è andato a buon fine, dovrebbe reindirizzare al sito di Discourse. Abbiamo visto diversi siti come Twitter o Atlassian fare la stessa cosa. Potete aiutarci con maggiori dettagli su come ottenere lo stesso risultato?
È corretto se per “utilizzare la nostra API” intendi “Modificheremo la nostra API per supportare Discourse Connect”. I dettagli su come farlo sono nei documenti che hai collegato. Se vuoi che tutti vengano reindirizzati immediatamente anziché vedere qualcosa sul tuo forum, dovrai attivare l’impostazione del sito “Login richiesto”.
Ho una domanda riguardo alla configurazione di Discourse SSO (DiscourseConnect). Esiste un modo per includere parametri aggiuntivi nella richiesta quando Discourse accede all’URL di DiscourseConnect? Nello specifico, voglio passare dati utente nella richiesta all’URL di DiscourseConnect, come un token utente o un ID utente, che posso utilizzare per autenticare l’utente e completare il processo di login SSO.
La sfida che sto affrontando è che gli utenti sono tenuti ad accedere due volte: una volta al mio progetto e di nuovo a Discourse, quando si connettono tramite SSO. Idealmente, vorrei semplificare il processo in modo che, se l’utente ha già effettuato l’accesso al mio progetto, non debba accedere di nuovo con le stesse credenziali sul mio progetto.
Esiste una funzionalità in Discourse o delle best practice per gestire questo? Apprezzerei qualsiasi guida o suggerimento per rendere l’esperienza SSO più fluida.
Un approccio per gestire questo scenario è delineato nella sezione “Rendere il processo trasparente per gli utenti autenticati” di questo argomento: Create a DiscourseConnect login link.
La prima volta che eseguo un accesso SSO con Discourse, vorrei sapere se è disponibile un’API o un metodo che possa fornirmi dati utente, come un ID utente o un token, che posso inviare all’API di Discourse. In cambio, Discourse includerebbe tali dati, come l’ID utente o il token, nella richiesta dell’URL di Discourse Connect.
Puoi usare l’external_id che hai impostato nel payload di DiscourseConnect per effettuare una richiesta API a Discourse. Tale richiesta restituirà l’intero oggetto utente.
Non stai capendo cosa voglio comunicare. Non sto chiedendo di recuperare i dettagli dell’utente da Discourse dopo il login. Ti prego di capire il flusso completo di ciò che sto cercando di ottenere e di farmi sapere se è possibile con Discourse o se devo procedere con il mio approccio.
Attualmente, ho un progetto creato utilizzando il framework Laravel e voglio fornire agli utenti l’accesso al forum Discourse per il feedback. Ho deciso di implementare il login SSO per Discourse. Ho creato un account amministratore di Discourse e abilitato le impostazioni necessarie per il login SSO, inclusa l’abilitazione dell’SSO, l’impostazione dell’URL di reindirizzamento e la configurazione del segreto.
Ora, ho aggiunto un pulsante ‘Discourse Connect’ all’interno del mio progetto. Voglio che quando gli utenti fanno clic su questo pulsante, si registrino o accedano utilizzando le mie credenziali e accedano automaticamente a Discourse. Quando gli utenti fanno clic sul pulsante ‘Discourse Connect’, vengono reindirizzati all’URL della mia community di base con l’endpoint session/sso, che a sua volta reindirizza al mio URL Discourse Connect. Ricevo i parametri SSO e sig nella richiesta, che capisco siano per la convalida. Tuttavia, ho bisogno dell’user_id o di un identificatore per recuperare i dati dell’utente dal mio database per convalidare, autenticare e accedere all’utente a Discourse.
La mia domanda è: esiste un’API o un meccanismo in Discourse che possa restituire l’user_id insieme ai parametri SSO e sig nella richiesta? Questo è importante perché, senza recuperare i dati dell’utente nella richiesta, dovrei far accedere nuovamente l’utente, il che fornirebbe una scarsa esperienza utente. Essenzialmente, quando un utente accede al mio progetto e fa clic sul pulsante ‘Discourse Connect’, viene attivato l’URL Discourse Connect e ricevo i parametri SSO e sig. Per autenticare l’utente, devo recuperare i dati dell’utente dal database, ma ciò richiederebbe all’utente di accedere nuovamente, cosa che voglio evitare.
Voglio un’esperienza fluida in cui, se l’utente ha già effettuato l’accesso una volta, non ha bisogno di accedere di nuovo. Dovrebbe essere in grado di accedere al forum Discourse direttamente utilizzando le proprie credenziali di progetto.