|
|
@@ -707,7 +707,7 @@ async function getLoginScanJumpUrl(url){
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-async function getAppConf(){
|
|
|
+async function getAppConf(reqId, lt, toUrl){
|
|
|
return new Promise((resolve, reject) => {
|
|
|
let body = `version=2.0&appKey=cloud`;
|
|
|
let headers = {
|
|
|
@@ -728,23 +728,88 @@ async function getAppConf(){
|
|
|
}
|
|
|
magicJS.http.post(options).then(resp => {
|
|
|
try {
|
|
|
- magicJS.logger.info(`页面数据:${JSON.stringify(resp.body)}`);
|
|
|
- magicJS.logger.info(`响应头部:${JSON.stringify(resp.headers)}`);
|
|
|
- let urlMatch = htmlText.match(/https?:\/\/[^\s'"]+/); // 正则表达式匹配
|
|
|
- if(urlMatch){
|
|
|
- resolve(urlMatch[0]);
|
|
|
- }
|
|
|
+ let data = resp.body;
|
|
|
+ magicJS.logger.info(`获取App配置: ${JSON.stringify(data)}`);
|
|
|
+ resolve(data);
|
|
|
} catch (err) {
|
|
|
resolve();
|
|
|
}
|
|
|
}).catch(err => {
|
|
|
- const msg = `获取页面数据异常\n${JSON.stringify(err)}`;
|
|
|
+ const msg = `获取App配置异常\n${JSON.stringify(err)}`;
|
|
|
magicJS.logger.error(msg);
|
|
|
reject(msg);
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+async function getEncryptConf(){
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ let body = `appId=cloud`;
|
|
|
+ let headers = {
|
|
|
+ "Accept": "*/*",
|
|
|
+ "Accept-Encoding": "gzip, deflate, br",
|
|
|
+ "Accept-Language": "zh-cn",
|
|
|
+ "Connection": "keep-alive",
|
|
|
+ "Content-Type": "application/x-www-form-urlencoded",
|
|
|
+ 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1',
|
|
|
+ };
|
|
|
+ let options = {
|
|
|
+ url: 'https://open.e.189.cn/api/logbox/config/encryptConf.do',
|
|
|
+ headers: headers,
|
|
|
+ body: body
|
|
|
+ }
|
|
|
+ magicJS.http.post(options).then(resp => {
|
|
|
+ try {
|
|
|
+ let data = resp.body;
|
|
|
+ magicJS.logger.info(`获取RSA公共密钥数据: ${JSON.stringify(data)}`);
|
|
|
+ resolve(data);
|
|
|
+ } catch (err) {
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ const msg = `获取RSA公共密钥异常\n${JSON.stringify(err)}`;
|
|
|
+ magicJS.logger.error(msg);
|
|
|
+ reject(msg);
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+async function getCaptchaData(lt, toUrl){
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ let body = `appId=cloud`;
|
|
|
+ let headers = {
|
|
|
+ "Accept": "*/*",
|
|
|
+ "Accept-Encoding": "gzip, deflate, br",
|
|
|
+ "Accept-Language": "zh-cn",
|
|
|
+ "Connection": "keep-alive",
|
|
|
+ "Content-Type": "application/x-www-form-urlencoded",
|
|
|
+ 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1',
|
|
|
+ };
|
|
|
+ // headers.lt = lt;
|
|
|
+ // headers.referer = toUrl;
|
|
|
+ let options = {
|
|
|
+ url: 'https://open.e.189.cn/api/logbox/oauth2/needcaptcha.do',
|
|
|
+ headers: headers,
|
|
|
+ body: body
|
|
|
+ }
|
|
|
+ magicJS.http.post(options).then(resp => {
|
|
|
+ try {
|
|
|
+ let data = resp.body;
|
|
|
+ magicJS.logger.info(JSON.stringify(data));
|
|
|
+ magicJS.logger.info(`获取Captcha数据: ${JSON.stringify(data)}`);
|
|
|
+ resolve(data);
|
|
|
+ } catch (err) {
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ const msg = `获取Captcha异常\n${JSON.stringify(err)}`;
|
|
|
+ magicJS.logger.error(msg);
|
|
|
+ reject(msg);
|
|
|
+ });
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
async function scanLogin(){
|
|
|
let sInitUrl = 'https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html?returnURL=%2Fmain.action';
|
|
|
let jumpUrl = await getLoginScanUrl(sInitUrl);
|
|
|
@@ -752,6 +817,8 @@ async function scanLogin(){
|
|
|
await getLoginScanJumpUrl(jumpUrl);
|
|
|
}
|
|
|
await getAppConf();
|
|
|
+ await getEncryptConf();
|
|
|
+ await getCaptchaData();
|
|
|
return null;
|
|
|
}
|
|
|
|