52 lines
2.3 KiB
JavaScript
52 lines
2.3 KiB
JavaScript
const { cryptoAesDecrypt, cryptoAesEncrypt, cryptoRSAEncrypt } = require('../util');
|
|
|
|
module.exports = (params, useAxios) => {
|
|
const dateNow = Date.now();
|
|
const encrypt = cryptoAesEncrypt({ pwd: params?.password || '', code: params?.code || '', clienttime_ms: dateNow });
|
|
const dataMap = {
|
|
plat: 1,
|
|
support_multi: 1,
|
|
clienttime_ms: dateNow,
|
|
t1: '562a6f12a6e803453647d16a08f5f0c2ff7eee692cba2ab74cc4c8ab47fc467561a7c6b586ce7dc46a63613b246737c03a1dc8f8d162d8ce1d2c71893d19f1d4b797685a4c6d3d81341cbde65e488c4829a9b4d42ef2df470eb102979fa5adcdd9b4eecfea8b909ff7599abeb49867640f10c3c70fc444effca9d15db44a9a6c907731e2bb0f22cd9b3536380169995693e5f0e2424e3378097d3813186e3fe96bbe7023808a0981b4e2b6135a76faac',
|
|
t2: '31c4daf4cf480169ccea1cb7d4a209295865a9d2b788510301694db229b87807469ea0d41b4d4b9173c2151da7294aeebfc9738df154bbdf11a4e117bb5dff6a3af8ce5ce333e681c1f29a44038f27567d58992eb81283e080778ac77db1400fdf49b7cf7e26be2e5af4da7830cc3be4',
|
|
t3: 'MCwwLDAsMCwwLDAsMCwwLDA=',
|
|
username: params?.username,
|
|
params: encrypt.str,
|
|
pk: cryptoRSAEncrypt({ 'clienttime_ms': dateNow, key: encrypt.key }).toUpperCase(),
|
|
};
|
|
|
|
return new Promise((resolve, reject) => {
|
|
useAxios({
|
|
url: '/v9/login_by_pwd',
|
|
method: 'POST',
|
|
data: dataMap,
|
|
encryptType: 'android',
|
|
cookie: params?.cookie || {},
|
|
headers: { 'x-router': 'login.user.kugou.com' },
|
|
})
|
|
.then((res) => {
|
|
const { body } = res;
|
|
if (body?.status && body?.status === 1) {
|
|
if (body?.data?.secu_params) {
|
|
const getToken = cryptoAesDecrypt(body.data.secu_params, encrypt.key);
|
|
if (typeof getToken === 'object') {
|
|
res.body.data = { ...body.data, ...getToken };
|
|
Object.keys(getToken).forEach((key) => res.cookie.push(`${key}=${getToken[key]}`));
|
|
} else {
|
|
res.body.data['token'] = getToken;
|
|
res.cookie.push(`token=${getToken}`);
|
|
}
|
|
res.cookie.push(`userid=${res.body.data?.userid || 0}`);
|
|
res.cookie.push(`vip_type=${res.body.data?.vip_type || 0}`);
|
|
res.cookie.push(`vip_token=${res.body.data?.vip_token || ''}`);
|
|
|
|
resolve(res);
|
|
return;
|
|
}
|
|
}
|
|
resolve(res);
|
|
})
|
|
.catch((e) => reject(e));
|
|
});
|
|
};
|