solo per lo sviluppo locale. Non utile per siti di produzione
Quando si lavora su Discourse in locale, è utile poter testare tutti i diversi metodi di accesso. Nella maggior parte dei casi, non ci interessa il processo di autenticazione vero e proprio, vogliamo solo sapere come Discourse reagirà a diversi input. Ad esempio:
- Cosa succede se l’email non è verificata?
- Cosa succede se il provider di autenticazione non ci invia un indirizzo email?
- Cosa succede se il provider di autenticazione non ci invia un nome utente?
- Cosa succede se l’email corrisponde, ma non l’UID?
- Come funzionano gli inviti quando viene utilizzata l’autenticazione esterna?
- Come appare la schermata di accesso?
- (Potrei continuare all’infinito qui… ma hai capito l’idea)
Fino a ora, l’unica opzione reale è stata “configurare un’autenticazione reale con Google/Twitter/OAuth2/etc. nel tuo ambiente di sviluppo”. Questo funziona, ma è estremamente laborioso, e poi ti trovi a dover creare più account Google/Twitter per testare diverse combinazioni.
Ho creato qualcosa di più snello:
Se installi questo plugin in locale, otterrai un provider di autenticazione finto. Per quanto riguarda Discourse, funziona esattamente come qualsiasi altro provider (ad esempio Google, Twitter, OAuth2, OIDC, ecc.).
Quando avvii il flusso di accesso, ti verrà mostrata questa schermata, dove puoi inserire manualmente qualsiasi dato desideri. I valori inviati verranno ricordati tramite un cookie, così potrai ripetere facilmente la stessa azione. I campi corrispondono allo Schema Auth Hash di Omniauth.
Utilizza il sistema ManagedAuthenticator, quindi i dati verranno memorizzati nella tabella user_associated_accounts con un provider_name di developmentauth.
Supporta anche DiscourseConnect! Per provarlo, installa semplicemente il plugin e attiva l’impostazione enable_discourse_connect. Alla prossima accesso, vedrai tutti i campi di DiscourseConnect pronti all’uso.
Provalo la prossima volta che lavori sull’autenticazione e fammi sapere se c’è qualcosa che può essere migliorato ![]()
Nota che questo è il plugin di autenticazione meno sicuro mai inventato. Pertanto, rifiuterà di avviarsi in un ambiente di produzione e dovrai impostare la variabile d’ambiente
DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATEa1affinché funzioni



