加载后自动登录网站-用户脚本(JS)

Automatically log in to website upon load - user script (JS)

本文关键字:脚本 用户 JS 网站 登录 加载      更新时间:2023-09-26

我正在编写一个用于学习的用户脚本,该脚本会自动将我登录到我的学校网站。我在JavaScript方面进行了一次尝试,我希望它能走上正轨。有人能帮我把它编辑成预期的效果吗(而不是完全不编辑)。我有Java和Python编程经验,但我对web编程非常陌生。谢谢

我正在使用以下代码的TamperMonkey

// ==UserScript==
// @name       MyMCLogin
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  Automatic login to My MC
// @match https://mymcprod.montgomerycollege.edu/cp/home/displaylogin
// @copyright  SJL 2015
// ==/UserScript==
document.getElementsByName('user')[0].value = "username";
document.getElementsByName('pass')[0].value = "password";
imageSubmit();

本质上,我想找到用户名的变量和密码的变量,用我的用户名和密码替换它们,然后提交

感谢您的帮助:)

编辑:我修复了一个语法错误。剩下的唯一问题是它没有提交用户名和密码

编辑2:我尝试了以下操作,但没有成功:

在检查了提交按钮后,我注意到有一个函数login()在按下时出现。我能以某种方式使用这个功能吗?

document.cplogin.submit();
document.userid.submit();
document.userid.login();

好吧,所以我开始工作了!!我从login()函数的html源代码中复制了代码。

setQueryAsCookie();
document.cplogin.user.value=document.userid.user.value;
if ( document.cplogin.uuid )
{
    document.cplogin.uuid.value=(new Date()).getTime() - clientServerDelta;
}

这是一个非常不雄辩的解决方案:p。我将继续尝试你们为学习目的提出的各种建议。

非常感谢大家:)

决赛?代码:

// ==UserScript==
// @name       MyMCLogin
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  Automatic login to My MC
// @match https://mymcprod.montgomerycollege.edu/cp/home/displaylogin
// @copyright  SJL 2015
// ==/UserScript==
document.getElementsByName('user')[0].value = "username";
document.getElementsByName('pass')[0].value = "password";
setQueryAsCookie();
document.cplogin.user.value=document.userid.user.value;
if ( document.cplogin.uuid )
{
    document.cplogin.uuid.value=(new Date()).getTime() - clientServerDelta;
}

您需要找到表单标记,以便对其调用submit()。但您不想自动提交所有表单,所以请检查表单的属性,如ID和action,看看它们是否包含单词"login"。这将是特定于您想要登录的页面,查看源代码并找到该表单的独特之处

然后,您可以像现在一样找到用户并传递,但您需要查看源代码,以确保名称属性与您在JS中搜索的内容相匹配。

我怀疑你最终可能会试图在每个页面上提交这个,并一直试图自动重新登录。我不知道tampermonkey是否一直将您的代码保存在内存中,但如果确实如此,请考虑设置一个变量来跟踪您是否已经登录。

//pseudo code
var formList = document.getElementsByTag('form');
var loginForm;
for (form in formList) {
     if (form.getAttribute('action').indexOf('login')) {
        loginForm = form;
     }
}
if (loginForm) {
     //set username and password;
     form.submit();
}