public IActionResult tokenLogin(int nalogId, int poruka) { UnlockToken neiskoristen = db.UnlockTokeni.Where(x => x.NalogID == nalogId && x.isUsed == false).FirstOrDefault(); Nalog nalog = db.Nalozi.Where(x => x.id == nalogId).FirstOrDefault(); if (neiskoristen == null) { string noviToken = TokenGenerator.GetUniqueKey(); UnlockToken u = new UnlockToken { NalogID = nalog.id, isUsed = false, token = noviToken, DateCreated = DateTime.Now }; db.UnlockTokeni.Add(u); db.SaveChanges(); var message = new MimeMessage(); message.From.Add(new MailboxAddress("Sportski centar ASA", "*****@*****.**")); message.To.Add(new MailboxAddress(nalog.KorisnickoIme, nalog.email)); message.Subject = "Vaš token za login"; message.Body = new TextPart("plain") { Text = "Poštovani,\n" + "Molimo vas da nakon uspješnog logina unesete sljedeći token da biste pristupili daljim opcijama:\n" + u.token }; using (var client = new SmtpClient()) { client.ServerCertificateValidationCallback = (s, c, h, e) => true; client.Connect("smtp.gmail.com", 587, false); client.Authenticate("*****@*****.**", "SportskiCentarASA123"); client.Send(message); client.Disconnect(true); } } AutentifikacijaTokenLoginVM model = new AutentifikacijaTokenLoginVM { nalogId = nalog.id }; if (poruka == 1) { model.msg = "Token nije validan, molimo vas unesite token koji ste dobili na vašu email adresu."; } return(View(model)); }
public IActionResult provjeriToken(string token, int nalogId) { UnlockToken t = db.UnlockTokeni.Where(x => x.NalogID == nalogId && x.isUsed == false).FirstOrDefault(); Nalog nalog = db.Nalozi.Where(x => x.id == nalogId).FirstOrDefault(); if (t.token == token) { t.isUsed = true; t.DateUsed = DateTime.Now; db.SaveChanges(); Autentifikacija.PokreniNovuSesiju(nalog, httpContext.HttpContext); return(RedirectToAction("Index", "Administrator/Admin")); } else { return(Redirect("/Autentifikacija/tokenLogin?nalogId=" + nalogId + "&poruka=1")); } }