Usa il plugin OAuth per Auth0 in modo più fluido

Sto attualmente cercando di integrare l’autenticazione Auth0 nella mia app Discourse. Ho sostanzialmente seguito il flusso di lavoro qui e ho ottenuto dei risultati.

Tuttavia, non ne sono del tutto soddisfatto per diversi motivi:

  1. Dopo aver cliccato su accedi/registrati, c’è solo un pulsante “con Auth0”. Voglio che il pannello di accesso/registrazione Auth0 sia l’unica cosa che appare dopo aver cliccato su accedi/registrati in cima alla pagina Discourse.
  2. Dopo l’autenticazione con Auth0, le persone non dovrebbero dover creare un nuovo utente, invece dovrebbe andare tutto bene grazie ad Auth0.
  3. L’autenticazione via email dovrebbe essere gestita tramite Auth0, non tramite Discourse.
  4. Se hai già effettuato l’accesso tramite Auth0 in quel browser, possibilmente con la stessa app da Auth0, in un altro modulo della nostra piattaforma, dovresti essere automaticamente loggato.
  5. Dovrebbe ancora esserci la possibilità di accedere come utente amministratore, poiché ciò potrebbe rivelarsi più impegnativo dopo aver implementato il punto n. 1.

Potresti aiutarmi a configurare tutto o almeno parti di esso?

Credo che tu possa controllare questa impostazione in Discourse auth_overrides_email per questo.

E puoi usare questa impostazione per questo: auth_skip_create_confirm

Quando ci si registra tramite autenticazione esterna, salta il popup di creazione dell’account. Meglio usarlo insieme a auth_overrides_email, auth_overrides_username e auth_overrides_name.

C’è anche l’impostazione auth_immediately che potrebbe fare quello che stai cercando:

Reindirizza automaticamente al sistema di login esterno senza interazione dell’utente. Questo ha effetto solo quando login_required è vero e c’è un solo metodo di autenticazione esterno.

Puoi visitare /u/admin-login per bypassare oauth.

3 Mi Piace

Molte grazie per il tuo contributo, @blake :slight_smile:

Hai anche qualche contributo per i punti 1 e 4 o sono più difficili?

Penso che queste impostazioni auth_immediatley e auth_skip_create_confirm affronteranno i punti 1 e 4. Puoi abilitarle e vedere se migliorano le cose?

@blake Molte grazie per il tuo contributo.

Ho fatto tutto come descritto nella pagina di configurazione più i tuoi suggerimenti. Tuttavia, quando provo ad accedere, appare questo

Mentre su https://community.auth0.com/ questo è ciò che appare tentando di accedere (ed è previsto anche per il mio sito)

Inoltre, ho provato ad accedere con la mia e-mail di test e richiede ancora l’autenticazione via e-mail nonostante l’e-mail sia autenticata su Auth0

Sai come cambiarlo di conseguenza?

Prova a disabilitare le impostazioni enable local logins. Questo dovrebbe rimuovere la possibilità di accedere, lasciando ai tuoi utenti solo l’opzione di accedere con OAuth2.

Ti consiglio di farlo in una sessione del browser separata. In questo modo potrai annullare eventuali modifiche apportate in caso di problemi di configurazione senza perdere la possibilità di accedere.

Ciao @blake

Grazie per gli spunti. Ho fatto qualche progresso ma sfortunatamente c’è ancora un piccolo problema con il login. Ogni volta che premo il pulsante di login, le informazioni corrette per l’utente vengono recuperate da auth0, ma discourse tenta comunque di creare un account.
Vengo portato a una schermata Benvenuto, creiamo il tuo account con un errore che dice L’indirizzo email primario è già stato utilizzato.

Questa è la mia attuale configurazione per tutte le sovrascritture:

Per favore, aiutami, grazie.

Ciao Robert!

Puoi risolvere questo problema abilitando questa impostazione: oauth2 allow association change

Ciao @leonardo, purtroppo il problema persiste anche dopo aver abilitato quell’impostazione.

in qualche modo ora funziona bene. Ho aggiunto la regola oauth2 email verified e ora funziona. Interessante.

Adoro questo plugin. Ho notato che quando effettuo il logout, mi disconnette da Discourse. Ma quando clicco su “accedi”… mi riconnette immediatamente (senza passare per Auth0). Ho consentito l’URI di logout nella mia App Auth0, ma sembra che https://AUTH0_DOMAIN/v2/logout non venga mai chiamato da questo plugin. Chi lo gestisce? Si può aggiungere?