GiraffeLe / GiwifiScript

Shell实现的giwifi自动登录
4 stars 1 forks source link

feat: add func logout #4

Closed TwiceTry closed 7 months ago

TwiceTry commented 7 months ago

请求头部添加了 origin (暂无用处) 添加了 外网检查,下线 函数 在登陆前获取当前是否在线,如果在线执行下线 更改了json字段获取及html表单解析 添加的$RANDOM在openwrt需要bash 只测了请求内容,没有giwifi环境实测

GiraffeLe commented 7 months ago

这是Giwifi的判断联网的函数

function isAccessInternet(sign){
    $.ajax({
        url : "http://nettest.gwifi.com.cn",
        type : "get",
        async : true,
        cache : false,
        success : function(data) {
            c = eval('(' + data + ')');
            //alert(c.resultCode + " | " + c.data);
            if(c.resultCode == 0 && c.data == "\"\""){
                showmessage("设备已在线,页面稍后跳转到下线页面", 4, "/gportal/web/logout?sign="+sign);
            }
            return false
        },error:function(jqXHR,textStatus,errorThrown){

       },beforeSend:function(){
       }

    });
}

如果在线会返回

{ resultCode: 0, data: '""' }

此外queryAuthState函数如果查询设备已上线会返回

{
  data: { resultCode: 0, data: { authState: 2, onlineTime: 822 } },
  info: '',
  status: 1
}

查询设备没上线会返回(用室友的账号登录测试,)

{
  data: { resultCode: 2, data: { authState: 1, onlineTime: 0 } },
  info: '',
  status: 0
}
GiraffeLe commented 7 months ago

另外readme已更改

TwiceTry commented 7 months ago

这是Giwifi的判断联网的函数

function isAccessInternet(sign){
  $.ajax({
      url : "http://nettest.gwifi.com.cn",
      type : "get",
      async : true,
      cache : false,
      success : function(data) {
          c = eval('(' + data + ')');
          //alert(c.resultCode + " | " + c.data);
          if(c.resultCode == 0 && c.data == "\"\""){
              showmessage("设备已在线,页面稍后跳转到下线页面", 4, "/gportal/web/logout?sign="+sign);
          }
          return false
      },error:function(jqXHR,textStatus,errorThrown){

       },beforeSend:function(){
       }

  });
}

如果在线会返回

{ resultCode: 0, data: '""' }

此外queryAuthState函数如果查询设备已上线会返回

{
  data: { resultCode: 0, data: { authState: 2, onlineTime: 822 } },
  info: '',
  status: 1
}

查询设备没上线会返回(用室友的账号登录测试,)

{
  data: { resultCode: 2, data: { authState: 1, onlineTime: 0 } },
  info: '',
  status: 0
}

嗯,请求内容响应内容,我了解过了,也写了解析。实际login过程可能存在其他问题,有空的话用这个pr里的脚本用上几天,没有报错哈,合并一下。