网站开机自启浏览器全屏自动登录

需求

大屏展示页面,需要开机自动启动浏览器并且实现绕过验证码自动登录。

最终实现

  1. 配置开机自启动页面,用户输入账号、密码。
  2. 配置完成后,用户下载一个vbs脚本
  3. 把vbs脚本放入开机自启项
  4. 下次开机就会执行脚本自动登录了

实现过程

  1. 下载 fingerprint2.js,配置页面和登录页面会用到以下代码获取指纹。
    来这里下载

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function getFingerprint(callback) {
    var excludes = {
    userAgent: true,
    audio: true,
    enumerateDevices: true,
    fonts: true,
    fontsFlash: true,
    webgl: true,
    canvas: true
    }
    Fingerprint2.get({ excludes: excludes }, function (components) {
    var values = components.map(function (component) {
    return component.value;
    });
    var murmur = Fingerprint2.x64hash128(values.join(''), 31);
    callback(murmur);
    });
    }
  2. 配置页面提交时候携带上面生成的指纹码

    1
    2
    3
    4
    5
    6
    7
    getFingerprint(function (fingerprint) {
    apiConfig({
    username: 'username',
    password: 'password',
    fingerprint: fingerprint
    });
    });
  3. 后台拿到指纹码与账户进行账户与指纹码关联并存储

  4. 前端下载脚本,修改用户名、密码、浏览器地址(建议使用谷歌浏览器)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Dim delayer
    Set delayer = CreateObject("WScript.Shell")
    WScript.sleep 8000

    Dim username
    username = "用户名"

    Dim password
    password = "密码!"

    Dim browser
    browser = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

    Dim env
    env = "http://necloud.solway.com.cn" ' 域名

    delayer.run """" + browser + """ -kiosk " + env + "/login.html?_=" & DateDiff("s", #1/1/1970#, Now()) & "&username=" + username + "&password=" + password,0,FALSE
    Set delayer = Nothing
    WScript.quit
  5. 配置完成后,把脚本设置为开机自启

    1. win + r
    2. 输入 shell:startup 回车,将会打开一个文件夹
    3. 将脚本拖入文件夹
    4. 重新启动电脑 不出错的情况下会开机自动全屏启动浏览器自动登录
  6. 登录页操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    var searchParams = {}
    window.location.search.substr(1).split('&').forEach(function name(params) {
    var arr = params.split('=')
    searchParams[arr[0]] = arr[1]
    })
    if (searchParams.username && searchParams.password) {
    // 登录地址中携带了账号密码,执行自动登录操作
    getFingerprint(function (fingerprint) {
    login({
    username: searchParams.username,
    password: searchParams.password,
    fingerprint: fingerprint
    });
    });
    }

    后台判断登录接口,如果携带了 fingerprint ,就判断 账号与指纹 是否匹配。如果匹配执行绕过验证码登录。

说明:只有上面配置的浏览器 + 上面配置的账号才可以自动登录。更换电脑、更换浏览器、浏览器版本改变需重新配置授权

坚持原创技术分享,您的支持将鼓励我继续创作!