public IActionResult Post(RequestLoginDto userInfo) { try { return(new JsonResult(_service.Login(userInfo)) { StatusCode = 201 }); } catch (Exception e) { return(BadRequest(e.Message)); } }
public ResponseLoginDto Login(RequestLoginDto userInfo) { Usuario user = _query.GetUserByDNI(userInfo.Dni); if (user != null && user.Password == Utils.Encryption(userInfo.Password)) { var secretKey = _configuration.GetSection("SecretKey").Value; var key = Encoding.ASCII.GetBytes(secretKey); var claims = new[] { new Claim("User", JsonConvert.SerializeObject(user)) }; var identity = new ClaimsIdentity(new GenericIdentity(user.DNI, "Auth"), claims); var tokenDescriptor = new SecurityTokenDescriptor { Subject = identity, Expires = DateTime.UtcNow.AddDays(1), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature), IssuedAt = DateTime.UtcNow }; var tokenHandler = new JwtSecurityTokenHandler(); var createdToken = tokenHandler.CreateToken(tokenDescriptor); ResponseUserLoginDto usuarioResponse = new ResponseUserLoginDto { Id = user.Id, Nombres = user.Nombres, Apellidos = user.Apellidos, DNI = user.DNI, RolId = user.RolId }; return(new ResponseLoginDto { Token = tokenHandler.WriteToken(createdToken), Usuario = usuarioResponse }); } throw new Exception("El DNI o contraseña ingresado es incorrecto"); }