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));
        }
Esempio n. 2
0
        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"));
            }
        }