Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como fazer esse método de verificação e confirmação de email em um projeto .NET core web API?

Olá pessoal,

Tenho um projeto de API que estou elaborando no .NET CORE 3.1 para então consumir em uma aplicação móvel, gostaria de saber como fazer esse método de validação de e-mail e confirmação sem precisar utilizar diretamente o Identity, deixo aqui meu projeto dessa forma ficará mais facil de entender o que preciso, se alguém poder me ajudar e me mostrar como fazer, irei ficar muito agradecido, segue o código abaixo: https://github.com/cryptoferms/DashboardAPI.Sample

Essa API está praticamente pronta, só falta melhorar essas questões de segurança, como verificação de e-mail e validação, os métodos de login e registro e as tabelas eu já fiz, meu objetivo é ter todos esses métodos em uma API sem ser um projeto MVC, pq o foco é a aplicação mobile,

Obrigado!

2 respostas

Olá Fernando, tudo certo?

O Identity existe exatamente para facilitar esse tipo de problema. Mas para implementar algo deste tipo, você precisa de um campo no seu banco que contenha um valor booleano no caso de estar validado ou não e um campo com um token ou algum outro hash que identifica unicamente esse e-mail (esse campo pode ser preenchido no momento do cadastro do usuário).

Depois disso, precisará fazer o envio do email com um código parecido com este aqui:

SmtpClient smtpClient = new SmtpClient("mail.MyWebsiteDomainName.com", 25);

smtpClient.Credentials = new System.Net.NetworkCredential("info@MyWebsiteDomainName.com", "myIDPassword");
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
MailMessage mail = new MailMessage();

// Caso queira mandar para um destinatário e uma cópia conjunta
mail.From = new MailAddress("info@MyWebsiteDomainName", "MyWeb Site");
mail.To.Add(new MailAddress("info@MyWebsiteDomainName"));
mail.CC.Add(new MailAddress("MyEmailID@gmail.com"));

smtpClient.Send(mail);

Para mais informaçõe sobre a classe SmtpClient, segue o link da documentação.

Quanto ao conteúdo deste email, deve ser algo que tenha um link para um controller/action que receba o token/hash de confirmação.

Ao receber o token/hash, será validado o email e esse hash e se tudo der certo, deve-se fazer um update do campo de validação para true.

Bom, acredito que seja esse o procedimento para fazer esta etapa sem o Identity.

Espero ter ajudado!

solução!

Boa tarde Fabiano,

Consegui aqui, optei por utilizar o Identity mesmo extendendo a tabela aspnetusers com os campos que precisava.

Obrigado!