Files

28 lines
1.1 KiB
JavaScript

/**
* sidEdt.js
* ----------
* 完整移植自你提供的浏览器 script(未删减任何函数),
* 只把浏览器专属的 API 替换为 Node 等价实现。
*
* 使用方法:
* const { generateSidEdt } = require('./sidEdt');
* const { sid, edt } = await generateSidEdt({ userid, dfid, mid });
*
* // sid、edt 均为 Base64 编码,可直接放到登录请求的 URL/JSON 中
*/
'use strict';
const { generateSimulate } = require('../util/generate_simulate');
const { generateWebGLHash } = require('../util/util');
const verifyUserInfo = require('./verify_user_info');
module.exports = async (params, useAxios) => {
const webglHash = params?.cookie.KUGOU_API_WEBGL || generateWebGLHash(); // WebGL 指纹哈希
const userid = params?.userid || params?.cookie.userid || '0';
const dfid = params?.dfid || params?.cookie.dfid || '0';
const mid = params?.mid || params?.cookie.KUGOU_API_MID || '0';
const value = generateSimulate(mid, userid, dfid, webglHash);
const userParams = { ...params, edt: value.edt, sid: value.sid };
return verifyUserInfo(userParams, useAxios);
};