Open crysisprophet1234 opened 11 months ago
baf7e840c63863c854e8fe055d15c28a3a49f272 definição da controladora dos métodos de envio de e-mail de verificação e recebimento de token para verificar conta de usuário.
e128b65 definição da entidade VerificationToken
e5b89bc definição da nova entidade User com propriedade accountStatus indicando se usuário possui e-mail verificado ou não
d232442 definição da classe de serviço com métodos de envio de e-mail de verificação, criação de token, verificação de conta por token
Com as novas entidades, a entity USER terá a propriedade AccountStatus que determinará se o usuário já verificou ou não sua conta por e-mail, no momento da criação ele é considerando UNVERIFIED e assim ficará até que alcance a rota verify-account.
Processo padrão de criação de conta:
Rota: /auth/v3/register
Dados recebidos:
Após isso o frontend deve chamar as rotas de criação de pessoa atrelando ao usuário recém criado.
Para verificar a conta, primeiro deve ser enviado o e-mail para o endereço que o novo usuário cadastrou, isso deve acontecer automáticamente (chamado pelo frontend) após criação do usuário e depois disso o usuário deverá solicitar caso precise um novo -email.
Rota: /v3/users/{userId}/send-verification-email
Nesse momento é renderizado a html account-verification-template com os dados do usuário e depos enviado para o e-mail que o usuário cadastrou contendo um link que leverá para a página no frontend responsável pela " confirmação " da verificação de conta, que conterá um link para a próxima rota na API que de fato efetiva a verificação da conta:
Rota: /v3/users/verify-account?verificationToken={UUID token}
Entidade VerificationToken
A resposta de ambos metódos de solicitação do e-mail e verificação apenas respondem 204 indicando o sucesso ou não, é responsabilidade do client chamar as rotas para não gerar encadeamento desnecessário no backend.
Essa issue foi criada para atrelar as commits relacionadas a essa implementação além das melhorias que podem ser realizadas como: