public bool TryLogin(IFormCollection form, out LoginFormErrorViewModel error) { var email = form.ContainsKey("email") ? form["email"].ToString() : ""; var password = form.ContainsKey("password") ? form["password"].ToString() : ""; var success = true; error = new LoginFormErrorViewModel() { Errors = new List <string>(), Email = email, Message = "" }; if (!IsAlreadyRegisteredEmail(email)) { success = false; error.Errors.Add("Email does not exist!"); } if (!PasswordCorrect(email, password)) { success = false; error.Errors.Add("Password is not correct!"); } return(success); }
public IActionResult Login(LoginFormErrorViewModel model) { if (model == null) { return(View(new LoginFormErrorViewModel() { Email = "", Errors = new List <string>(), Message = "" })); } return(View(model)); }
public IActionResult Register(IFormCollection form) { var regSuccess = TryRegister(form, out RegisterFormErrorViewModel errors); if (regSuccess) { var email = form.ContainsKey("email") ? form["email"].ToString() : ""; var password = form.ContainsKey("password") ? form["password"].ToString() : ""; var privkey = form.ContainsKey("privkey") ? form["privkey"].ToString() : ""; var salt = Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 8); var hashed = PasswordHash(password, salt); var user = new User() { Email = email, Salt = salt, HashedPassword = hashed, HistoricalTransactions = new List <HistoricalTransaction>(), RegisteredTime = DateTime.UtcNow, UId = Guid.NewGuid().ToString(), UserTokens = new List <UserToken>(), Wallets = new List <Wallet>() }; context.Database.EnsureCreated(); context.Users.Add(user); if (privkey != "") { var wallet = walletUtil.WalletFromKey(privkey, user, "Main"); context.Wallets.Add(wallet); } else { var wallet = walletUtil.GenerateNewWallet(user, "Main"); context.Wallets.Add(wallet); } context.SaveChanges(); var sucError = new LoginFormErrorViewModel() { Email = email, Errors = new List <string>(), Message = "<span class='text-success'>Registered succesfully ! Now log in.</span>" }; return(new RedirectToActionResult("Login", "Home", routeValues: sucError)); } else { return(new RedirectToActionResult("Register", "Home", routeValues: errors)); } }