public async Task <IActionResult> Login(userForLogin userForLoginDto) { var user = await _userManager.FindByEmailAsync(userForLoginDto.Email.ToLower()); if (user != null) { if (!user.EmailConfirmed) { return(BadRequest("ConfirmEmail")); } var result = await _signInManager.CheckPasswordSignInAsync(user, userForLoginDto.Password, true); if (result.Succeeded) { var userToReturn = _mapper.Map <UsersForReturn> (user); return(Ok(new { token = GenerateJwtToken(user).Result, user = userToReturn })); } return(BadRequest("incorrectPassword")); } return(Unauthorized("noAccountFound")); }
public async Task<IActionResult> Login(userForLogin userForLoginDto){ var userFromRepo= await _repo.Login(userForLoginDto.Username.ToLower(), userForLoginDto.Password ); if(userFromRepo == null){ _logger.Error("user Unauthorized"); return Unauthorized(); } var claims = new[]{ new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.NameIdentifier, userFromRepo.Username) }; var key = new SymmetricSecurityKey(Encoding.UTF8 .GetBytes(_config.GetSection("AppSettings:Token").Value)); // var key = new SymmetricSecurityKey(Encoding.UTF8 // .GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor{ Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var tokentosession = tokenHandler.WriteToken(token); userFromRepo.token = tokentosession; var res = await _userrepo.SaveAll(); // HttpContext.Session.GetString("User"); //var user = _mapper.Map<UserForListDto>(userFromRepo); // HttpContext.Session.SetString("JWToken", tokentosession); _logger.Information("user loged"); return Ok(new { token= tokenHandler.WriteToken(token), userFromRepo }); }