mpay/public/static/js/helper.js
2024-12-07 17:16:17 +08:00

77 lines
2.0 KiB
JavaScript

// 登陆配置
const logins = [
{
name: '拉卡拉',
host: 'm2.lakala.com',
method: 'POST',
orderQuery: '/m/lamsmerdash/account/pwdLogin',
accPath: 'account',
pswPath: 'pwd',
},
{
name: '收钱吧',
host: 'web-platforms-msp.shouqianba.com',
method: 'POST',
orderQuery: '/api/login/ucUser/login',
accPath: 'username',
pswPath: 'password',
}
];
// 提取登陆信息
function extractLoginInfo(request, logins) {
logins.forEach((login) => {
const urlObj = isHttp(request.url, login.host);
if (login.host.toLowerCase() === urlObj.hostname.toLowerCase() &&
login.orderQuery.toLowerCase() === urlObj.pathname.toLowerCase() &&
login.method.toLowerCase() === request.method.toLowerCase()) {
const jsonData = JSON.parse(request.request);
const acc = eval(`jsonData.${login.accPath}`);
const psw = eval(`jsonData.${login.pswPath}`);
const data = {
'账号': acc,
'密码': psw
};
console.log('----- ' + login.name + ' -----');
console.table(data);
}
})
}
function isHttp(url, host) {
if (url.startsWith('http') || url.startsWith('https')) {
return new URL(url);
} else {
url = 'https://' + host + url;
return new URL(url);
}
}
var oldOpen = XMLHttpRequest.prototype.open;
var oldSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.open = function (method, url) {
this._url = url;
this._method = method;
return oldOpen.apply(this, arguments);
};
XMLHttpRequest.prototype.send = function (body) {
this._body = body;
const res = {
url: this._url,
method: this._method,
request: this._body
};
extractLoginInfo(res, logins);
return oldSend.apply(this, arguments);
};
window.au_fetch = window.fetch;
window.fetch = function (url, options) {
const res = {
url: url,
method: options.method,
request: options.body
};
extractLoginInfo(res, logins);
return window.au_fetch.apply(window, [url, options]).then((response) => {
return response;
})
};