该方法仅用于VUE环境下GSTC甘特图 (https://gantt-schedule-timeline-calendar.neuronet.io/)的开发跳过使用认证
相关配置信息:package.json: "gantt-schedule-timeline-calendar": "^3.15.2"
建立项目DEMO的过程我就不介绍了,本文章主要介绍跳过方法
1、确保你创建甘特图的config配置数据中有licenseKey,这个key的值你可以任意写,但是必须有,不能为空!就像这样(我把VUE3的写法改成了VUE2,请勿在意这些细节)
2、 找到node_modules\gantt-schedule-timeline-calendar\dist\gstc.wasm.esm.min.js这个文件,对,就是它,自信点,你没有找错,就是在node_modules里面,打开这个文件,你会发现代码一堆,乱的啥也看不明白,别急,两个办法,第一:百度一下min.js文件返压缩,第二:找到甘特图的例子,打开控制台,找到加载的这个文件资源,然后格式化一下,具体怎么格式化,这是前端的必备技能,我就不啰嗦了,格式化完后找到这个地方
大约在6700行左右,每个人的编译器格式化不一样,你别按我的行数找,你在文件里搜索window[ 或者 Content-Type 应该就可以找到地方了。注意,因为是min.js压缩混淆了,所以代码变量名字可能不完全一样,但是结构肯定是一模一样的,我圈的地方就是验证的地方,下面是具体的认证介绍,不感兴趣可以直接略过。
// 这里在发送请求
window[t(498, "5$y^")](S, {
method: w("&m#d", 314),
redirect: N(-18, 76),
headers: {
"Content-Type": d(404, 279)
},
body: f
})
// 这里在做证书的认证
[G(-670, "nOZ#")]((A => {
var g, I, B, Q;
return 200 !== A[(g = 169,
I = 250,
e(g, I - -866))] && (W = !1,
r = y),
A[(B = "cH4^",
Q = 54,
E(Q - -1118, B))]()
}
))
// 这里在做licenseKey的认证
[E(1203, "38vV")]((C=>{
function E(A, g) {
return N(A - -342, g)
}
function o(A, g) {
return G(g - 1108, A)
}
.
.
.
.
3、改造
首先模拟一个promise的返回,代码位置放在和 window[ 同级就行了,因为认证是通过promise来回调认证的
function mockRequest() {
return new Promise(function (resolve, reject) {
resolve({ "ok": true })
})
}
阻止请求
将模拟的请求返回进行认证,在上图红色圈的地方调用一下,代码的[E(1203, "38vV")]这部分是个.then()
最后把这个地方改一下,让判断直接通过
此文章说明:
请注意:本文章禁止转载,仅仅是用于开发者学习时临时跳过验证使用,不做他用,如果恶意转载或者使用介绍的方法进行他用,造成的任何后果均与本文章和本作者无关!如有侵权,请及时告知删稿。
(tips: 都是程序猿,自己学习的时候用用得了,别太过分呦)