public async Task <IActionResult> Login(LoginUserDTO model) { var userfromDb = await _userManager.FindByNameAsync(model.Username); if (userfromDb == null) { return(BadRequest()); } var result = await _signInManager.CheckPasswordSignInAsync(userfromDb, model.Password, false); if (!result.Succeeded) { return(BadRequest()); } var roles = await _userManager.GetRolesAsync(userfromDb); IList <Claim> claims = await _userManager.GetClaimsAsync(userfromDb); return(Ok(new { result = result, username = userfromDb.UserName, email = userfromDb.Email, token = _jwtToken.GenerateToken(userfromDb, roles, claims) })); }
public async Task <IActionResult> Login(LoginModel loginModel) { var userInDb = await _userManager.FindByNameAsync(loginModel.Username); if (userInDb == null) { return(BadRequest()); } // the false in the argument is used to prevent the user from being locked out after several failed attempts var result = await _signInManager.CheckPasswordSignInAsync(userInDb, loginModel.Password, false); if (!result.Succeeded) { return(BadRequest()); } var roles = await _userManager.GetRolesAsync(userInDb); var claims = await _userManager.GetClaimsAsync(userInDb); return(Ok(new { result = result, username = userInDb.UserName, email = userInDb.Email, token = _jWTTokenGenerator.GenerateToken(userInDb, roles, claims) })); }
public async Task <IActionResult> LoginAsync(LoginAPIModel model) { var user = await _userManager.FindByEmailAsync(model.Email); if (user is null) { return(BadRequest("Incorrect User Name or Password")); } if (!user.EmailConfirmed) { return(BadRequest("Please confirm your email")); } var result = await _signInManager.CheckPasswordSignInAsync(user, model.Password, false); if (!result.Succeeded) { return(BadRequest("Incorrect User Name or Password")); } var roles = await _userManager.GetRolesAsync(user); IList <Claim> claims = await _userManager.GetClaimsAsync(user); var token = _jwtToken.GenerateToken(user, roles, claims); return(Ok(new { result = result, username = user.Email, email = user.Email, firstName = user.FirstName.ToString(), lastName = user.LastName.ToString(), token = token, userid = user.Id })); }
public async Task <IActionResult> Authenticate([FromBody] LoginModel login) { var user = await userManager.FindByNameAsync(login.UserName); if (user != null && await userManager.CheckPasswordAsync(user, login.Password)) { var claims = await userManager.GetClaimsAsync(user); var token = tokenGenerator.GenerateToken(claims); return(Ok(new AuthenticationResponse() { Token = token, UserName = login.UserName })); } return(BadRequest()); }
public async Task <IActionResult> Login(LoginModel model) { var userFromDb = await _userManager.FindByNameAsync(model.Username); if (userFromDb == null) { return(BadRequest(new { message = "Unable to login", status = 400 })); } var result = await _signInManager.CheckPasswordSignInAsync(userFromDb, model.Password, false); if (!result.Succeeded) { return(BadRequest(new { message = "Unable to login", status = 400 })); } var subscription = await _subscriberRepository.GetByCustomerIdAsync(userFromDb.CustomerId); DateTime expDate; var isSubscriber = false; if (subscription != null && subscription.Status == "active") { isSubscriber = true; expDate = subscription.CurrentPeriodEnd; } else { expDate = DateTime.Now.AddDays(7); } return(Ok(new { token = _jwtToken.GenerateToken(userFromDb, expDate, isSubscriber), status = 200 })); }