Il plugin WP Discourse ti permette di configurare DiscourseConnect in WordPress, in modo che i tuoi utenti possano utilizzare il proprio account WordPress per accedere a Discourse, o il proprio account Discourse per accedere a WordPress. Prima di poter configurare DiscourseConnect, devi prima installare il plugin WP Discourse su WordPress e collegarlo al tuo Discourse. Se sei pronto per iniziare, guarda questo breve video oppure segui le istruzioni riportate di seguito.
Prossimo passo
Una volta configurato DiscourseConnect, potresti voler dare unâocchiata ai seguenti argomenti:
Istruzioni
Impostazione di una chiave segreta
Sia che tu stia configurando WP Discourse come provider o client di DiscourseConnect, devi impostare una chiave segreta. Vai alla scheda âDiscourseConnect Secret Keyâ e inserisci una stringa di testo (sono consentiti numeri, lettere e simboli), lunga almeno 10 caratteri. Utilizza le stesse regole che useresti per creare una password robusta. Assicurati di salvarla quando hai finito.
Quindi, apri le impostazioni del sito Discourse (nel pannello Amministratore) e cerca âdiscourse connectâ. Una delle impostazioni in alto sarĂ discourse connect secret. Incolla lĂŹ la chiave segreta che hai impostato in WP Discourse e clicca sul segno di spunta verde.
Accesso a Discourse con WordPress (Provider DiscourseConnect)
Assicurati che WP Discourse sia collegato al tuo Discourse e che la tua chiave segreta sia impostata (
) prima di seguire queste istruzioni.
Per consentire ai tuoi utenti di accedere a Discourse utilizzando le proprie credenziali WordPress, devi configurare WP Discourse come provider di DiscourseConnect. Vai alla scheda DiscourseConnect Provider nelle impostazioni di WP Discourse, seleziona la casella di controllo Enable DiscourseConnect Provider e salva le impostazioni.
Successivamente, vai alle impostazioni del sito Discourse e inserisci âdiscourse connectâ nella casella di ricerca per visualizzare tutte le tue impostazioni DiscourseConnect. Per prima cosa, imposta discourse connect url sullâURL del tuo WordPress. Lâultimo passo è selezionare enable discourse connect. Assicurati di essere pronto prima di selezionarlo, perchĂŠ una volta fatto, i tuoi utenti potranno accedere a Discourse solo tramite WordPress.
Una volta abilitato DiscourseConnect in Discourse, per verificare che sia configurato correttamente, apri una finestra di navigazione in incognito nel tuo browser. Mantieni la finestra normale (non in incognito) del browser collegata a un account amministratore (nel caso qualcosa vada storto e tu debba modificare le impostazioni). Nella finestra in incognito noterai che il pulsante âIscrivitiâ di Discourse non appare piĂš. Clicca sul pulsante âAccediâ. Dovresti vedere una schermata di accesso WordPress. Inserisci le tue credenziali WordPress per accedere. Dovresti quindi essere reindirizzato a Discourse e risultare loggato.
Se qualcosa va storto, o noti che qualcosa non è del tutto corretto, torna alla tua finestra del browser normale e disabilita enable discourse connect per permettere ai tuoi utenti di accedere normalmente a Discourse. Se per qualche motivo non sei piĂš loggato con il tuo account amministratore nella finestra normale del browser, consulta la sezione âDisabilita DiscourseConnect tramite la console di Discourseâ nella risoluzione dei problemi qui sotto per riaccedere al tuo Discourse.
Verifica dellâemail
Discourse si aspetta che tutti gli indirizzi email degli utenti siano verificati, mentre WordPress non forza gli utenti a verificare il proprio indirizzo email. In una configurazione predefinita di WordPress, è abbastanza facile verificare lâemail di un utente durante il processo di registrazione, ma se un sito utilizza un plugin che crea un modulo di registrazione lato frontend â ad esempio, il modulo di registrazione che può essere aggiunto con WooCommerce â il plugin WP Discourse non è in grado di verificare lâemail dellâutente.
Se le email degli utenti non vengono verificate in WordPress, prima che un utente WordPress possa accedere al forum, dovrĂ rispondere a un avviso di verifica email inviato da Discourse. Il plugin dispone di alcuni filtri che possono essere utilizzati per sovrascrivere questo comportamento. Dai unâocchiata al codice, partendo da qui, per i dettagli.
Rimozione del flag require_activation
Se sei sicuro che WordPress stia autenticando gli indirizzi email, puoi indicare a Discourse che non ne ha bisogno. Per rimuovere completamente il flag require_activation, aggiungi qualcosa di simile al tuo WordPress (ad esempio, nel file functions.php del tuo tema):
// Sostituisci 'my_prefix' con il prefisso del tuo sito.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification' );
function my_prefix_discourse_email_verification( $require_activation ) {
return false;
}
Per rimuovere il flag require_activation per utenti specifici, usa qualcosa di simile:
// Sostituisci 'my_prefix' con il prefisso del tuo sito.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification', 10, 2 );
function my_prefix_discourse_email_verification( $require_activation, $user_id ) {
$user = get_userdata( $user_id );
if ( /* una condizione testata su $user */ ) {
return true;
}
return false;
}
Webhook Userdata
Questo webhook esiste per motivi storici: ora è possibile riempire automaticamente il campo Nome Discourse utilizzando lâopzione del provider DiscourseConnect âCrea o sincronizza gli utenti Discourse allâaccessoâ.
Il webhook Update Userdata (nel pannello delle impostazioni âWebhooksâ) può essere utilizzato quando WordPress è il provider di DiscourseConnect per il tuo Discourse. Il webhook riempie automaticamente il campo Nome Discourse dellâutente su WordPress.
Creazione di un link di accesso DiscourseConnect
Se hai abilitato lâopzione provider DiscourseConnect, puoi aggiungere un link di accesso DiscourseConnect al tuo sito WordPress creando un link con la seguente struttura:
<a href="https://discourse.example.com/session/sso?return_path=/">Community</a>
Imposta il valore di return_path alla pagina del tuo forum su cui desideri che lâutente atterri. Puoi aggiungere un link di accesso SSO a un menu di WordPress aggiungendo un URL con questa struttura come Link personalizzato nella sezione Menu della dashboard di WordPress.
Accesso a WordPress con Discourse (Client DiscourseConnect)
Per abilitare il tuo sito a funzionare come client di DiscourseConnect per Discourse, clicca sulla scheda DiscourseConnect Client. In quella pagina, seleziona le opzioni Enable DiscourseConnect Client e Add Login Link.
Ora vai alla pagina Amministratore/Impostazioni di Discourse e cerca âdiscourse connectâ per visualizzare tutte le tue opzioni DiscourseConnect.
- seleziona lâimpostazione âenable discourse connect providerâ
- copia la tua
DiscourseConnect Secret Keyda WordPress nel campo âsecretâ dellâimpostazione âdiscourse connect provider secretsâ di Discourse. Nel campo âdomainâ di quellâimpostazione, inserisci il dominio del tuo sito WordPress. Quindi clicca sul segno di spunta verde per salvare le impostazioni.
Una volta completato, lâimpostazione âdiscourse connect provider secretsâ su Discourse dovrebbe apparire cosĂŹ (con il dominio impostato sul tuo dominio WordPress):
Discourse dovrebbe ora funzionare come provider di DiscourseConnect per il tuo sito WordPress.
Apri il tuo sito WordPress in una finestra di navigazione in incognito nel tuo browser. Quando ora vai alla tua pagina di accesso, dovresti vedere un link âAccedi con Discourseâ sotto il modulo di accesso. Cliccalo e verrai portato al modulo di accesso di Discourse. Accedi lĂŹ e verrai reindirizzato alla pagina di accesso di WordPress con un avviso che dice che devi sincronizzare il tuo account con Discourse. Segui le istruzioni nellâavviso per collegare i tuoi account e dovresti ora essere in grado di accedere al tuo sito WordPress tramite Discourse.
Nota: questo comportamento interessa solo gli utenti che hanno giĂ account sia su WordPress che su Discourse. I nuovi account WordPress creati tramite DiscourseConnect saranno in grado di accedere liberamente a WordPress la prima volta che cliccheranno sul link âAccedi con Discourseâ. Per rendere piĂš facile agli utenti con account esistenti sia sul tuo sito WordPress che sul tuo forum Discourse accedere tramite Discourse, seleziona la casella di controllo Sync Existing Users by Email nella scheda delle opzioni DiscourseConnect Client.
Sincronizzazione dellâuscita da Discourse
Quando DiscourseConnect è abilitato, lâuscita da Discourse può essere sincronizzata con il tuo sito WordPress aggiungendo lâhome_url del tuo sito con il parametro di query request=logout allâimpostazione del sito Discourse logout redirect. Lâimpostazione si trova nella sezione impostazioni di Discourse in /admin/site_settings/category/users. Ecco un esempio di URL âlogout redirectâ:
http://example.com/?request=logout
Risoluzione dei problemi
Se stai riscontrando problemi nellâutilizzo di WordPress come provider di DiscourseConnect per il tuo forum, le prime cose da controllare sono:
- che le chiavi segrete DiscourseConnect impostate su WordPress e Discourse siano identiche
- assicurati di aver selezionato
Enable DiscourseConnect Providersul tuo sito WordPress - assicurati di aver inserito lâURL
discourse connect urlcorretto su Discourse.
âErrore di accessoâ durante lâuso di DiscourseConnect
Se gli utenti ricevono un messaggio âErrore di accessoâ quando tentano di accedere a Discourse, consulta
Debug and fixing common DiscourseConnect issues.
Disabilitazione di DiscourseConnect
Se DiscourseConnect non funziona per te, puoi disattivarlo disabilitando lâimpostazione del sito enable discourse connect. Se non sei ancora loggato con un account amministratore da qualche parte per disattivarlo, non preoccuparti, ci sono alcuni modi per rientrare e disattivarlo.
Accesso tramite /users/admin-login
Apri una nuova finestra del browser e inserisci lâURL del tuo forum nella barra degli indirizzi seguito da /users/admin-login, ad esempio:
https://community.mysite.com/users/admin-login
Dovresti vedere un campo di input che ti chiede la tua email di amministratore. Dopo aver inviato la tua email, riceverai unâemail con un link che ti consentirĂ di accedere direttamente al tuo account amministratore. Puoi quindi andare alle impostazioni del sito e disabilitare enable discourse connect per disattivare DiscourseConnect.
Se per qualche motivo questo non funziona, non preoccuparti, puoi comunque disattivare DiscourseConnect tramite la console del server (
)
Disattivazione di DiscourseConnect tramite la console del server
Se non sai cosâè la console del server, o non hai accesso ad essa, contatta il tuo provider di hosting per assistenza. Dopo esserti connesso via SSH al tuo server, i comandi che devi eseguire sono i seguenti:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.enable_discourse_connect=false
exit
exit







