Funcionalidade: criar nome de usuário padrão a partir da parte do usuário do e-mail ao usar Google OAuth2/SSO

I hope it’s ok to post random feature requests/suggestions here.

I have a Discourse instance set up so that users can authenticate with a Google Apps Hosted Domain (in my case @vt.edu). I have observed that Discourse assigns user names based on combining first + last name it obtains via OAuth2 - e.g., First_Last.

What I’d much prefer is if the proposed username matched the user portion of the email account user@vt.edu since user is an identifier used elsewhere whereas First_Last is not. Moreover, First_Last is not guaranteed to be unique (John_Smith) whereas the user id is. This would for my use case help with the data explorer plugin when I need to match statistics against other records and just provide an overall more uniform experience.

1 curtida

Acredito que o @andrei removeu isso completamente, pois havia implicações de privacidade ao criar um nome de usuário “automaticamente” com base no e-mail?

1 curtida

Na verdade não. Não estamos removendo isso, apenas desabilitando com a capacidade de ativá-lo usando a configuração do site use_email_for_username_and_name_suggestions.

Além disso, observe que essa alteração é feita para o DiscourseConnect, mas não para outros métodos de autenticação (incluindo autenticação via Google). Mas a correção para outros métodos está chegando em breve.

Além disso, ao gerar o nome de usuário, o nome completo tem prioridade sobre o e-mail; os autenticadores tentam usar o e-mail para sugestões de nome de usuário apenas se os campos username e full-name no payload estiverem vazios. Isso é algo que pode ser personalizado com um plugin. Mas usar o e-mail como fonte principal para sugestões de nome de usuário não é algo que queremos fazer por padrão, especialmente para autenticação via Google. O motivo é que, neste caso, é possível descobrir os e-mails de todos os usuários no fórum apenas adicionando @gmail.com aos nomes de usuário.

1 curtida