Funziona per il login dell’utente, ma passare la chiave groups non sembra avere alcun effetto. Ho esaminato il codice di ManagedAuthenticator e non ho trovato nulla relativo ai gruppi.
@david Quanto pensi sia difficile farlo per qualcuno che non ha mai scritto plugin? È semplice come recuperare per nome i gruppi provenienti dal JWT da Discourse e assegnare il risultato della query (degli oggetti gruppo) a user.groups? Ho una certa familiarità con il plugin (per quanto semplice) e potrei essere in grado di farlo.
Inoltre, ne vale la pena? Se ho un JWT a disposizione, posso autenticarmi tramite OpenID Connect?
Dipende da come vuoi che funzioni… probabilmente vorrai anche poter creare gruppi normali in Discourse, senza che il JWT rimuova casualmente i membri da essi. Nel nostro sistema SSO nativo di Discourse, risolviamo questo problema con due parametri: “add groups” e “remove groups”.
Nel plugin JWT, dovresti probabilmente aggiungere questa logica nella funzione after_authenticate dell’autenticatore. Assicurati di chiamare super e di restituire la sua risposta, in modo che tutto il resto continui a funzionare correttamente. Un esempio di questo tipo di override si trova qui
Il plugin discourse-jwt funziona. Tuttavia, sembra che sia progettato per funzionare solo con l’algoritmo HS256, per qualche motivo. È abbastanza semplice adattarlo per farlo funzionare con altri.