public IActionResult Login(UsuarioAuthLoginDto usuarioAuthLoginDto) { // throw new Exception("Error generado test"); var usuarioDesdeRepo = _userRepo.Login(usuarioAuthLoginDto.Usuario, usuarioAuthLoginDto.Password); if (usuarioDesdeRepo == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, usuarioDesdeRepo.Id.ToString()), new Claim(ClaimTypes.Name, usuarioDesdeRepo.UsuarioA.ToLower()) }; // Generación de token var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var credenciales = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = credenciales }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token) })); }
public IActionResult Login(UsuarioAuthLoginDto usuarioAuthLoginDto) { var usuarioDesdeRepo = UsuarioRepository.Login(usuarioAuthLoginDto.Usuario, usuarioAuthLoginDto.Password); if (usuarioDesdeRepo == null) { return(Unauthorized()); } // var claims = new[] // { // new Claim(ClaimTypes.NameIdentifier, usuarioDesdeRepo.IdUsuario.ToString()), // new Claim(ClaimTypes.Name, usuarioDesdeRepo.UsuarioAcceso.ToString()) // }; // ///Generacion de Token // var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetSection("AppSettings:Token").Value)); // var credenciales = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); // var tokenDescriptor = new SecurityTokenDescriptor // { // Subject = new ClaimsIdentity(claims), // Expires = DateTime.Now.AddDays(1), // SigningCredentials = credenciales // }; // var TokenHandler = new JwtSecurityTokenHandler(); // var token = TokenHandler.CreateToken(tokenDescriptor); // return Ok(new // { // token = TokenHandler.WriteToken(token) // }); //} var claims = new[] { new Claim(ClaimTypes.NameIdentifier, usuarioDesdeRepo.IdUsuario.ToString()), new Claim(ClaimTypes.Name, usuarioDesdeRepo.UsuarioAcceso.ToString()) }; //Generación de token var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetSection("AppSettings:Token").Value)); var credenciales = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = credenciales }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token) })); }
public IActionResult Login(UsuarioAuthLoginDto usuarioAuthLoginDto) { var usuarioDesdeRepo = _userRepo.Login(usuarioAuthLoginDto.usuario, usuarioAuthLoginDto.clave); if (usuarioDesdeRepo == null) { return(Unauthorized("Usuario no autorizado")); } //JWT es un formato estándar, compacto y seguro de trasmitir Claims(propiedades, afirmaciones o en general información) //genera claim var claims = new[] { new Claim("Id", usuarioDesdeRepo.idusuario.ToString()), new Claim("Usuario", usuarioDesdeRepo.usuario_user.ToString()) }; //genera el token var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var credenciales = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Issuer = "www.utpmedic.com", Audience = "www.utpmedic.com", Expires = DateTime.Now.AddMonths(1), SigningCredentials = credenciales }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token), id = usuarioDesdeRepo.idusuario.ToString(), usuario = usuarioDesdeRepo.usuario_user.ToString(), namefoto = usuarioDesdeRepo.nombrefoto.ToString(), idtipousuario = usuarioDesdeRepo.idtipousuario.ToString() })); }
public IActionResult Login(UsuarioAuthLoginDto usuarioAuthLoginDto) { /*try * {*/ //Provocamos una excepcion para probar el manejo de errores. //throw new Exception("Error generado"); var usuarioDesdeRepo = _userRepo.Login(usuarioAuthLoginDto.Usuario, usuarioAuthLoginDto.Password); if (usuarioDesdeRepo == null) { return(Unauthorized()); } /*claim = reclamar*/ var claims = new[] { /*Esto es parte de APS.NET CORE para validar un registro único.*/ new Claim(ClaimTypes.NameIdentifier, usuarioDesdeRepo.Id.ToString()), new Claim(ClaimTypes.Name, usuarioDesdeRepo.UsuarioAcceso.ToString()) }; /*Comenzamos a construir toda la parte del token que se genera.*/ /*Tenemos que agregar en nuestro appsettings.json esa nueva Key llamada Token*/ /* * "AppSettings": { * "Token": "esta es mi clave secreta personalizada para autenticacion" * } */ //Generación del Token var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); // Creamos las credenciales del token var credenciales = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); // Pasamos los claims y la fecha de expiración del token var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = credenciales }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token) })); /*} * catch (Exception) * { * return StatusCode(500, "Error generado"); * }*/ }