Integrazione in un sistema di autenticazione personalizzato dove le email non sono uniche?

Bene, sì. Ovviamente sarebbe così, ed è quello a cui sto puntando. Stavo cercando una soluzione che disabilitasse del tutto l’accesso tramite email, lasciando i login con nome utente come unico metodo. Mi andrebbe bene di fatto interrompere completamente il supporto via email (nessuna notifica via email, per esempio) fornendo email completamente false dal server OAuth. Ma questo crea attrito se la possibilità di usare un’email per accedere è ancora disponibile, poiché gli utenti tenterebbero di farlo e fallirebbero.

Ciò ci costringerebbe essenzialmente a tracciare 2 email separate per utente, il che non è desiderabile, e come menzionato da @supermathie non è nemmeno garantito che funzioni con tutti i provider, e causa comunque attrito poiché dovremmo ora informare gli utenti di questo indirizzo email specifico del forum che devono ricordare.

Sì, tecnicamente funzionerebbe. Ma per ovvie ragioni non sarebbe una soluzione reale da utilizzare, poiché bloccherebbe tutti gli altri dall’entrare mai nel forum.

Questa non è una cosa che possiamo fare per motivi tecnici. Il più ovvio è che abbiamo già utenti che hanno lo stesso indirizzo email di altri account. Ma quello più grande è che semplicemente non possiamo farlo. Il progetto in cui stiamo cercando di integrare Discourse è Pretendo Network, un progetto di emulazione del server per Nintendo Network. Nintendo ha permesso al suo sistema di account di riutilizzare gli indirizzi email, quindi per emulare accuratamente i server dobbiamo farlo anche noi. Forzare email univoche non è nei nostri piani.

Qualcuno del mio team ha suggerito di gestire il nostro server SMTP che si occupa di mappare le email false per Discourse alle email reali dei nostri utenti, inoltrando in quel modo le email inviate da Discourse. Il che funzionerebbe, ma ovviamente comporta un costo tecnico maggiore per noi e non risolve comunque il problema di disabilitare l’accesso via email e l’attrito menzionato che deriva dal nostro caso.

Sembra che potremmo dover semplicemente fare un fork di Discourse o utilizzare un’altra soluzione di forum per fare ciò di cui abbiamo bisogno.