private string GenerateJSONWebToken(SeguridadLogin user) { var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); var credentiasl = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256); var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, user.Usuario), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var token = new JwtSecurityToken( issuer: _config["Jwt:Issuer"], audience: _config["Jwt:Issuer"], claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: credentiasl ); var encodeToken = new JwtSecurityTokenHandler().WriteToken(token); return(encodeToken); }
public IActionResult Login([FromBody] SeguridadLogin login) { IActionResult response = Unauthorized(); try { SeguridadLogin SeguridadLoginencontrado = AutenticarSeguridadLogin(login); if (SeguridadLoginencontrado != null) { string tokenStr = GenerateJSONWebToken(SeguridadLoginencontrado); response = Ok(new { token = tokenStr }); } return(response); } catch (Exception ex) { //LogException(e); return(StatusCode(500, "Error interno del server: " + ex.Message)); } }
private SeguridadLogin AutenticarSeguridadLogin(SeguridadLogin login) { return(unitOfWork.SeguridadLogins.ValidarLogin(login.Usuario, login.Pass)); }