vvcomponent
Version:
VV组件
57 lines • 2.47 kB
JavaScript
globalThis.QQLogin = async function (callback, mobile) {
const requestUrl = "https://coco.codemao.cn/http-widget-proxy/https@SEP@cn.apihz.cn/api/user/jhdl.php?id=10006409&key=349da62160908055e25ab93aabf0818f&type=1";
try {
const startTime = Date.now();
const response = await fetch(requestUrl);
const data = await response.json();
if (data.code == 200) {
const cxid = data.cxid;
const loginurl = data.logurl;
let win = null;
if (!mobile) {
win = window.open(loginurl, "login QQ", "popup,left=200,top=200,width=360,height=640");
} else {
win = window.open(loginurl, "login QQ");
}
const interval = setInterval(async () => {
const checkUrl = `https://coco.codemao.cn/http-widget-proxy/https@SEP@cn.apihz.cn/api/user/jhdlq.php?id=10006409&key=349da62160908055e25ab93aabf0818f&cxid=${cxid}`
const response = await fetch(checkUrl);
const data = await response.json();
if (data.code == 200) {
clearInterval(interval);
callback({
code: 200,
message: "登录成功",
social_uid: data.social_uid,
nickname: data.nickname,
avatar: data.faceimg,
gender: data.gender,
ip: data.ip,
location: data.location,
});
win.close();
clearInterval(interval);
} else if (data.code == 300) { } else {
if (data.msg == "用户还未进行登录操作!") return;
callback({
code: 500,
message: "登录失败"
});
win.close();
clearInterval(interval);
}
}, 2500);
} else {
if (data.msg.startsWith("调用频次过快")) return callback({
code: 429,
message: "接口频率限制,请稍后再试"
});
callback({
code: 500,
message: "登录失败"
});
}
} catch (error) {
callback({ error });
}
}