Crea account solo per email registrate nel mio database esterno

Voglio che solo le persone registrate sul mio sito web esterno possano creare un account nel mio forum Discourse. Non credo di poter utilizzare l’API SSO perché il mio sito web non contiene un sistema di autenticazione; si tratta semplicemente di una registrazione in un database SQL.
Posso impostare una condizione durante la registrazione in modo che possano registrarsi solo gli utenti già presenti nel mio database SQL (il mio sito web)?

Non sono un esperto di Discourse, ma ci sono molti modi per gestire questa situazione e ne proporrei uno che, secondo me, potrebbe funzionare e che cercherei di esplorare:

  1. Richiedere l’approvazione per i nuovi utenti di Discourse
  2. Sviluppare uno script sul tuo sito web remoto o in un ambiente serverless che interroghi il tuo database per verificare una persona e poi chiami l’API di Discourse per approvare o rifiutare il nuovo utente
  3. Far sì che Discourse effettui una chiamata webhook allo script quando viene creato un nuovo utente
  4. Personalizzare i messaggi di Discourse per spiegare meglio agli utenti cosa sta accadendo

In sostanza, Discourse dispone di webhook e API efficaci, quindi puoi utilizzarli scrivendo il tuo script personalizzato in remoto nel linguaggio di programmazione con cui ti senti più a tuo agio.

Se sei disposto a scrivere un plugin per Discourse in Ruby, funzionerebbe, ma personalmente non lo sono, quindi troverei questo approccio più semplice.

Un modo per ottenere questo risultato è attivare le impostazioni del sito “solo su invito” e “è necessario approvare gli utenti”. Con queste impostazioni attivate, gli unici utenti che potranno creare account sul tuo sito saranno quelli invitati. Gli inviti potranno essere inviati solo dagli utenti dello staff, poiché l’impostazione “è necessario approvare gli utenti” impedisce agli utenti non appartenenti allo staff di inviare inviti.

Potrai quindi estrarre gli indirizzi email dal tuo database SQL e aggiungerli a un file CSV. Tale file potrà essere utilizzato per inviare inviti in blocco agli utenti seguendo le istruzioni descritte qui: Invio di inviti in blocco agli utenti.

1 Mi Piace

Grazie, Jonathan, per la tua idea.
Non sono riuscito a trovare l’API da utilizzare per approvare o rifiutare l’iscrizione.

Grazie Simon,
Il problema è che il database è ampio e aggiornabile,

Cercando nel codice di Discourse su GitHub, ho trovato un’azione “approve_user”, ad esempio put "/review/#{reviewable.id}/perform/approve_user.json". Sembra che tu debba prima ottenere i reviewable per recuperare l’ID del reviewable di cui hai bisogno.

2 Mi Piace