Example #1
0
        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");
             * }*/
        }