Integração em custom auth system onde e-mails não são únicos?

Bem, sim. Claro que seria o caso, e é o que estou visando. Eu estava procurando uma solução que simplesmente proibisse o login com e-mail, deixando os logins com nome de usuário como o único método. Eu ficaria feliz em essencialmente quebrar o suporte de e-mail inteiramente (sem notificações por e-mail, por exemplo) apenas fornecendo e-mails totalmente falsos do servidor oauth. Mas isso cria atrito se a capacidade de usar um e-mail para fazer login ainda estiver disponível, já que os usuários tentariam fazê-lo e falhariam.

Isso essencialmente nos forçaria a rastrear 2 e-mails separados por usuário, o que também não é desejável e, como mencionado por @supermathie, nem sequer é garantido que funcione com todos os provedores, e ainda causa atrito, pois teríamos que informar aos usuários sobre este endereço de e-mail específico do fórum que eles precisam lembrar.

Sim, isso funcionaria tecnicamente. Mas, por razões óbvias, não seria uma solução real para usar, pois bloquearia todos os outros de ingressarem no fórum.

Isso não é algo que podemos fazer por razões técnicas. O mais óbvio é que já temos usuários que têm o mesmo endereço de e-mail de outras contas. Mas o maior é que simplesmente não podemos fazer isso. O projeto no qual estamos buscando incorporar o Discourse é o Pretendo Network, um projeto de emulação de servidor para a Nintendo Network. A Nintendo permitiu que seu sistema de contas reutilizasse endereços de e-mail e, para emular os servidores com precisão, também temos que fazer isso. Forçar e-mails exclusivos simplesmente não está em nossos planos.

Alguém da minha equipe sugeriu que executássemos nosso próprio servidor SMTP que lida com o mapeamento dos e-mails falsos do Discourse para os e-mails reais de nossos usuários, encaminhando os e-mails enviados do Discourse dessa forma. O que funcionaria, mas obviamente vem com um custo técnico maior para nós e ainda não resolve o problema de desabilitar o login por e-mail e o atrito mencionado que vem com nosso caso.

Parece que podemos ter que fazer um fork do Discourse ou usar outra solução de fórum para fazer o que precisamos.