Ejemplo n.º 1
0
        public async Task <IActionResult> GetToken([FromBody] UserLogin model)
        {
            if (!api.Login(model.Password, model.Mail))
            {
                return(StatusCode(400, "Los datos no corresponden a ningun usuario"));
            }
            if (!api.IsUserVerified(model.Mail, model.Password))
            {
                return(StatusCode(400, "La cuenta no ha sido verificada"));
            }
            var token = api.GetUserToken(model.Mail);

            await new EmailSender(emailOptions).SendEmailAsync(model.Mail, "Token MejorPrecio3", $"Su token de usuario para MejorPrecio3.com es: " + token);
            return(StatusCode(200, "Le enviamos su token de usuario por correo electronico."));
        }
Ejemplo n.º 2
0
        public async Task<IActionResult> Register(UserAdd userAdd)
        {
            var captchaResponse = HttpContext.Request.Form["g-recaptcha-response"];
            if(!CheckRecaptcha(captchaResponse))
            {
                ModelState.AddModelError("captcha","El Captcha no ha sido ingresado correctamente");
                return View(userAdd);
            }
            User user = new User()
            {
                Age = userAdd.Age,
                Verified = false,
                Role = "user",
                Password = userAdd.Password,
                Gender = userAdd.Gender,
                Mail = userAdd.Mail,
                Name = userAdd.Name
            };


            bool exists = api.Exist(user.Mail);
            if (!exists)
            {
                try
                {
                    api.CreateUser(user);
                    var token = api.GetUserToken(user.Mail);
                    var link = "http://" + this.Request.Host + this.Request.Path + "/Verify/?token=" + token;
                    await new EmailSender(emailOptions).SendEmailAsync(user.Mail, "Verificacion de cuenta", $"Confirme su cuenta haciendo click <a href='{HtmlEncoder.Default.Encode(link)}'>Aquí</a>");
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("Password", e.Message);
                    return View("Register", userAdd);
                }
                return View("ToVerify", userAdd);
            }
            else
            {
                return RedirectToAction("Index","Login",new LoginViewModel(){Mail=userAdd.Mail});
            }
        }