public ActionResult Login(ViewModels.UserLogin user) { if (!hasAccess()) { return(new HttpNotFoundResult()); } if (!ModelState.IsValid) { return(View()); } var checkUser = getUser(user.Email); if (checkUser == null) { ModelState.AddModelError("Email", "Email does not exist."); return(View()); } if (hashPassword(user.Password, checkUser.Salt) != checkUser.PasswordHash) { ModelState.AddModelError("Password", "Incorrect password."); return(View()); } Session["userType"] = checkUser.AccountType; Session["userID"] = checkUser.ID; if (Session["userType"].ToString() == "admin") { return(Redirect("/Admin/ChangeSystemParameters")); } return(Redirect("/User/MyProfile")); }
[HttpPost]//logiin public async Task <IActionResult> Login([FromBody] ViewModels.UserLogin user) { if (!ModelState.IsValid) { Dictionary <string, List <string> > errors = ModelState.ToDictionary( kvp => kvp.Key, kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToList()); return(BadRequest(new { errors })); } JwtSecurityToken jwtSecurityToken = await _sessionService.Login(user); if (jwtSecurityToken == null) { return(Unauthorized()); } Response.Headers.Add("Authorization", new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken)); return(Ok()); //return Ok(new //{ // access_token = new JwtSecurityTokenHandler().WriteToken(token), // expires_in = DateTime.Now.AddMinutes(30), // token_type = "bearer" //}); }
public async Task <JwtSecurityToken> Login(ViewModels.UserLogin user) { Models.User existingUser = await _context.Users.FirstOrDefaultAsync(u => u.Login == user.Login); if (existingUser != null && (new PasswordHasher <ViewModels.UserLogin>().VerifyHashedPassword(user, existingUser.Password, user.Password)) == PasswordVerificationResult.Success) { return(await CreateJWTToken(existingUser)); } return(null); }