Diskuse » Creation Requests

南京信息职业技术学院校园网自动登陆

§
Posted: 26. 05. 2023

// ==UserScript==
// @name 南京信息职业技术学院校园网自动登录
// @namespace https://bbs.tampermonkey.net.cn/
// @version 1.0.0
// @icon http://n.njcit.cn/Public/Images/favicon.ico
// @description 主要功能:在PCweb端添加手机端认证域;可以设置网页打开没有登录时的自动登录。
// @author C选项_沉默
// @improver zhangtoutou
// @match http://n.njcit.cn/*
// @match http://222.192.254.22/*
// @run-at document-end
// @grant none
// ==/UserScript==

'use strict';

// 新建一个Object用来存储所需要的信息
window.autoLogin = {
userInfo: {
username: '',
domain: '',
password: ''
},
autoLoginSwitch: 0,
savePasswordInCookies: 1,
panel: undefined,
loginStatus: {
status: 0
}
};

// 读取用户名
if ($.cookie("sunriseUsername") !== undefined) {
window.autoLogin.userInfo.username = $.cookie("sunriseUsername");
}

// 读取认证域
if ($.cookie("sunriseDomain") !== undefined) {
window.autoLogin.userInfo.domain = $.cookie("sunriseDomain");
}

// 读取密码
if ($.cookie("autoLoginPassword") !== undefined) {
window.autoLogin.userInfo.password = $.cookie("autoLoginPassword");
}

// 读取开关状态
if ($.cookie("autoLoginSwitch") !== undefined) {
window.autoLogin.autoLoginSwitch = parseInt($.cookie("autoLoginSwitch"));
}

// 读取存储位置
if ($.cookie("autoLoginsavePasswordInCookies") !== undefined) {
window.autoLogin.savePasswordInCookies = parseInt($.cookie("autoLoginsavePasswordInCookies"));
}

// 刷新当前登录状态
window.autoLogin.updateLoginStatus = function() {
$.ajax({
type: 'GET',
url: initUrl,
contentType: "application/x-www-form-urlencoded",
dataType: 'json',
cache: false,
data: {},
error: function(XMLHttpRequest, textStatus, errorThrown) {
showResultBox($('#loginResult'), false, '请确保通信正常后刷新页面', 5000);
},
success: function(json) {
if (window.autoLogin.loginStatus.status !== json.status) {
window.autoLogin.loginStatus = json;
}
if (json.status === 0) {
console.log('登录状态:未登录');
window.autoLogin.writeFormAndLogin();
} else if (json.status === 1 && json.info === "用户已登录") {
console.log('登录状态:已登录');
window.autoLogin.close();
}
}
});
};

// 向DOM中加入认证域与设置页面
window.autoLogin.insertHTML = function() {
// 添加认证域
$("option").remove();
$("#domain").append(
`

freestudent

student-phone

phone

internet

baoyue

qgzxyh

qgzxby`
);

// 添加设置按钮
$('div.nav-bar ul').append(`

  • 自动登录设置
  • `);

    // 添加设置页面
    $('div.mLeft').append(
    `

    自动登录脚本-自动登录设置







    @
    freestudentstudent-phonestudentphoneinternetbaoyueqgzxyhqgzxby






    保存

    `
    );
    };

    // 显示或关闭设置面板
    window.autoLogin.switchSettingPanel = function() {
    var panels = $('form');
    if (panels[4].style.display === 'none') {
    for (var i = 0; i < panels.length; i++) {
    if (panels[i].style.display !== 'none') {
    window.autoLogin.panel = panels[i].id;
    break;
    }
    }
    $('form#' + window.autoLogin.panel).hide();
    $('form#loginFormForAutoLogin').show();
    window.autoLogin.updateForm();
    } else {
    $('form#loginFormForAutoLogin').hide();
    $('form#' + window.autoLogin.panel).show();
    }
    };

    // 刷新设置表单
    window.autoLogin.updateForm = function() {
    $('#loginFormForAutoLogin #usernameForAutoLogin').val(window.autoLogin.userInfo.username);
    $('#loginFormForAutoLogin #domainForAutoLogin').val(window.autoLogin.userInfo.domain);
    $('#loginFormForAutoLogin #passwordForAutoLogin').val(base64decode(window.autoLogin.userInfo.password));
    if (window.autoLogin.savePasswordInCookies) {
    $('.info-right #savePasswordInBrowser').hide();
    $('.info-right #savePasswordInCoookies').show();
    } else {
    $('.info-right #savePasswordInCoookies').hide();
    $('.info-right #savePasswordInBrowser').show();
    }
    if (window.autoLogin.autoLoginSwitch) {
    $('.info-left #switchForAutoLoginOff').hide();
    $('.info-left #switchForAutoLoginOn').show();
    } else {
    $('.info-left #switchForAutoLoginOn').hide();
    $('.info-left #switchForAutoLoginOff').show();
    }
    };

    // 填写登录表单并登录
    window.autoLogin.writeFormAndLogin = function() {
    $('#loginForm #username').val(window.autoLogin.userInfo.username);
    $('#loginForm #domain').val(window.autoLogin.userInfo.domain);
    if (window.autoLogin.savePasswordInCookies) {
    $('#loginForm #password').val(base64decode(window.autoLogin.userInfo.password));
    } else if (!$('#loginForm #password').val()) {
    showResultBox($('#loginResult'), false, '您的浏览器好像没有自动帮您输入密码,若您的浏览器不支持自动表单填写,请移步“自动登录设置”,开启cookies保存密码!');
    console.log('登录失败');
    return 0;
    }
    if (window.autoLogin.autoLoginSwitch) {
    $("button#login").click();
    console.log('已自动登录。');
    window.autoLogin.close();
    }
    };

    // 保存按钮
    window.autoLogin.saveButton = function() {
    window.autoLogin.userInfo.username = $.trim($('#loginFormForAutoLogin #usernameForAutoLogin').val());
    $.cookie("sunriseUsername", window.autoLogin.userInfo.username, { expires: 365 });
    window.autoLogin.userInfo.domain = $('#loginFormForAutoLogin #domainForAutoLogin').val();
    $.cookie("sunriseDomain", window.autoLogin.userInfo.domain, { expires: 365 });
    $.cookie("autoLoginSwitch", window.autoLogin.autoLoginSwitch, { expires: 365 });
    $.cookie("autoLoginsavePasswordInCookies", window.autoLogin.savePasswordInCookies, { expires: 365 });
    if (window.autoLogin.savePasswordInCookies) {
    window.autoLogin.userInfo.password = base64encode($('#loginFormForAutoLogin #passwordForAutoLogin').val());
    $.cookie("autoLoginPassword", window.autoLogin.userInfo.password, { expires: 365 });
    }
    };

    // 密码悬浮显示
    window.autoLogin.showPassword = function() {
    $("input[type=password]").mouseover(function() {
    this.type = 'text';
    });
    $("input[type=password]").mouseout(function() {
    this.type = 'password';
    });
    };


    // 登录成功则关闭页面
    window.autoLogin.close = function() {
    window.autoLogin.closeTime = new Date().getTime();
    window.autoLogin.timecount = window.autoLogin.closeTime - parseInt($.cookie('autoLoginCloseTime'));
    showResultBox($('#logoutResult'), true, '自动关闭剩余冷却时间:' + parseInt(60 - window.autoLogin.timecount / 1000).toString() + ' / 60 秒。', 5000);
    if (window.autoLogin.timecount > 60000 || window.autoLogin.timecount < 10) {
    $.cookie('autoLoginCloseTime', window.autoLogin.closeTime, { expires: 365 });
    window.close();
    window.open('http://n.njcit.cn/', '_self');
    }
    if ($.cookie('autoLoginCloseTime') === undefined) {
    $.cookie('autoLoginCloseTime', window.autoLogin.closeTime, { expires: 365 });
    }
    };

    window.autoLogin.insertHTML();
    window.autoLogin.showPassword();
    window.autoLogin.updateLoginStatus();

    Post reply

    Sign in to post a reply.