public IActionResult PedirToken([FromBody] AuthRequest request) { if (string.IsNullOrEmpty(request.usuario) || string.IsNullOrEmpty(request.clave)) { return(BadRequest("Debe enviar usuario / clave")); } //esto deberia validarse contra la tabla de usuarios BEUsuario user = _usuarioServices.Autenticar(request.usuario, request.clave); //if (!(request.usuario == "jperez" && request.clave == "123456")) if (user == null) { return(BadRequest("Credenciales invalidad")); } //Generando la semilla string clave = _jwtConfig.JWTKey; byte[] claveEnByte = Encoding.UTF8.GetBytes(clave); SymmetricSecurityKey key = new SymmetricSecurityKey(claveEnByte); //Generando el algoritmo var cred = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); //Creando el Payload var claims = new[] { new Claim("user", user.Credencial), new Claim("rol", user.Rol) }; //creando un generador de token JwtSecurityToken generador = new JwtSecurityToken( issuer: _jwtConfig.JWTIssuer, audience: _jwtConfig.JWTAudience, claims: claims, expires: DateTime.Now.AddMinutes(10), signingCredentials: cred ); string token = new JwtSecurityTokenHandler().WriteToken(generador); AuthResponse resp = new AuthResponse() { Token = token }; return(Ok(resp)); }
public IActionResult Index(Usuario user) { Usuario u = _Services.Autenticar(user.Login, user.Clave); if (u == null) { ModelState.AddModelError("*", "Credenciales invalidas"); return(View(u)); } else { //grabarlo en sesion HttpContext.Session.SetString("login", u.Login); u.Clave = ""; string usuariotexto = JsonConvert.SerializeObject(u); HttpContext.Session.SetString("user", usuariotexto); return(RedirectToAction("Index", "Home")); } }