filipedeschamps / tabnews.com.br

Conteúdos para quem trabalha com Programação e Tecnologia.
https://tabnews.com.br
GNU General Public License v3.0
5k stars 369 forks source link

Conta não verificada pelo email não foi descartada #957

Open GuilhermeAugustoNeto opened 1 year ago

GuilhermeAugustoNeto commented 1 year ago

Eu fiz um cadastro com um email errado e então não verifiquei a conta pelo email.

Agora eu quero o username daquela conta, então eu criei uma conta de email com o endereço que eu tinha colocado (aquele errado) e tentei recuperar a senha mas eu não recebo o email de recuperação e também não consigo usar o username.

(o endereço errado aparece como uma conta na hora de solicitar nova senha)

Rafatcb commented 2 weeks ago

Recentemente conheci a extensão pg_cron para o PostgreSQL. Faz sentido utilizá-la e remover os usuários que possuem apenas a feature read:activation_token há mais de 48 horas, por exemplo?

DELETE
  users
WHERE ARRAY['read:activation_token'::varchar] = features
AND created_at < NOW() - INTERVAL '48 hours';
-- Precisaria tratar também o "activate_account_tokens" para caso
-- algum dos usuários removidos tenham um token não expirado.

Dessa forma, quem não ativar a conta em 48 horas (ou X horas) terá que cadastrar novamente.

aprendendofelipe commented 1 week ago

Uma outra abordagem é verificar isso no momento da criação de um usuário.

Na criação, caso o username coincida com um existente, mas que não foi ativado dentro da validade do token de ativação, então libera o uso desse username para a nova conta, independentemente de ser o mesmo ou outro endereço de email.

Rafatcb commented 1 week ago

É uma boa opção, e mais simples.