public async Task <IActionResult> Login(AkunLoginViewModel akunUser, string returnUrl) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var isvalid = unitofwork.AkunUser.ValidateUserLogin(akunUser); if (isvalid) { var claims = new List <Claim>() { new Claim("user", akunUser.Email), new Claim("role", "user") }; var claimIds = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme, "user", "role"); var claimsprincipal = new ClaimsPrincipal(claimIds); await HttpContext.SignInAsync(claimsprincipal); if (Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } else { return(Redirect("/")); } } else { return(View()); } } return(BadRequest(ModelState)); }
public bool ValidateUserLogin(AkunLoginViewModel loginViewModel) { var data = this.Db.AkunUser.Where(d => d.Email == loginViewModel.Email && d.Password == d.Password); if (data.Any()) { return(true); } return(false); }
public async Task <IActionResult> TokenAsync([FromBody] AkunLoginViewModel inputModel) { if (ModelState.IsValid) { var valid = unitofwork.AkunUser.ValidateUserLogin(inputModel); if (!valid) { return(Unauthorized()); } var claims = new List <Claim>() { new Claim(ClaimTypes.NameIdentifier, inputModel.Email), new Claim(JwtRegisteredClaimNames.Sub, inputModel.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var cls = new ClaimsIdentity(claims, JwtBearerDefaults.AuthenticationScheme); var claimsPrincipal = new ClaimsPrincipal(cls); await HttpContext.SignInAsync(claimsPrincipal); var credentials = new SigningCredentials(JwtSecurityKey.Create(), SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken(JwtSecurityKey.Issuer, JwtSecurityKey.Audience, claimsPrincipal.Claims, DateTime.Now, DateTime.Now.AddDays(1), credentials); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token), expiration = token.ValidTo })); } return(BadRequest(inputModel)); }