public static function login($user, $passwd)
 {
     try {
         $con = DBConexion::getInstance();
         $usuario_bd = $con->executeQuery('SELECT * FROM usuario WHERE usuario=?;', array($user));
     } catch (\Exception $e) {
         throw $e;
     }
     if (isset($usuario_bd) && count($usuario_bd) > 0) {
         $usuario_bd = $usuario_bd[0];
         if (password_verify($user . $passwd, $usuario_bd->contrasena)) {
             self::$loggedIn = true;
             self::$arrUsuario['auth_user'] = $user;
             Session::regenerateSessionId();
             $token = sha1($_SERVER['HTTP_USER_AGENT'] . $user . session_id());
             Session::setValue('session_id', session_id());
             Session::setValue('token', $token);
             //Por defecto la cookie se guarda una hora despues de la hora actual
             self::setCookie('session_id', session_id());
             //Por defecto la cookie se guarda una hora despues de la hora actual
             self::setCookie('token', $token);
             //Salvamos los datos de la sesion en bd
             $query = vsprintf("INSERT INTO sesion(session_id, session_data, expire_date) VALUES('%s', '%s', '%s');", array(session_id(), $token, date("Y-m-d H:i:s", self::$expiration)));
             $res = $con->executeUpdate(array($query));
             return true;
         } else {
             Session::setValue('loginErrors', "Usuario o contrase&ntilda;a incorrectos");
             self::$arrUsuario = array();
             self::$loggedIn = false;
             return false;
         }
     }
     return false;
 }