fear: webui quick login

This commit is contained in:
手瓜一十雪
2024-05-07 20:50:25 +08:00
parent bcdf949d34
commit 88c58b9f67
4 changed files with 85 additions and 16 deletions

View File

@@ -1,5 +1,6 @@
import { RequestHandler } from "express";
import { DataRuntime } from "../helper/Data";
import { sleep } from "@/common/utils/helper";
const isEmpty = (data: any) => data === undefined || data === null || data === '';
export const QQGetQRcodeHandler: RequestHandler = async (req, res) => {
if (await DataRuntime.getQQLoginStatus()) {
@@ -36,26 +37,41 @@ export const QQCheckLoginStatusHandler: RequestHandler = (req, res) => {
});
};
export const QQSetQuickLoginHandler: RequestHandler = async (req, res) => {
// 未完成
const { token } = req.body;
if (token) {
const isLogin = await DataRuntime.getQQLoginStatus();
let { uin } = req.body;
let isLogin = await DataRuntime.getQQLoginStatus();
if (isLogin) {
res.send({
code: -1,
message: 'QQ Is Logined'
});
return;
}
// 未实现
if (isEmpty(uin)) {
res.send({
code: -1,
message: 'uin is empty'
});
return;
}
let ret = await DataRuntime.getQQQuickLogin(uin);
if (!ret.result) {
res.send({
code: -1,
message: ret.message
});
return;
}
//本来应该验证 但是http不宜这么搞 建议前端验证
//isLogin = await DataRuntime.getQQLoginStatus();
res.send({
code: 0,
message: 'success'
});
}
export const QQGetQuickLoginListHandler: RequestHandler = async (req, res) => {
// 未完成
const { token } = req.body;
if (token) {
const isLogin = await DataRuntime.getQQLoginStatus();
}
// 未实现
const quickLoginList = await DataRuntime.getQQQuickLoginList();
res.send({
code: 0,
message: 'success'
data: quickLoginList
});
}

View File

@@ -1,9 +1,24 @@
let LoginRuntime = {
interface LoginRuntimeType {
LoginCurrentTime: number;
LoginCurrentRate: number;
QQLoginStatus: boolean;
QQQRCodeURL: string;
QQLoginUin: number;
NapCatHelper: {
CoreQuickLogin: (uin: string) => Promise<{ result: boolean, message: string }>;
QQLoginList: string[]
}
}
let LoginRuntime: LoginRuntimeType = {
LoginCurrentTime: Date.now(),
LoginCurrentRate: 0,
QQLoginStatus: false, //得去那边注册个回调刷新
QQLoginStatus: false, //已实现 但太傻了 得去那边注册个回调刷新
QQQRCodeURL: "",
QQLoginUin: 0
QQLoginUin: 0,
NapCatHelper: {
CoreQuickLogin: async (uin: string) => { return { result: false, message: '' }; },
QQLoginList: []
}
}
export const DataRuntime = {
checkLoginRate: async function (RateLimit: number): Promise<boolean> {
@@ -40,5 +55,17 @@ export const DataRuntime = {
,
getQQLoginUin: async function (): Promise<number> {
return LoginRuntime.QQLoginUin;
},
getQQQuickLoginList: async function (): Promise<any[]> {
return LoginRuntime.NapCatHelper.QQLoginList;
},
setQQQuickLoginList: async function (list: string[]): Promise<void> {
LoginRuntime.NapCatHelper.QQLoginList = list;
},
setQQQuickLogin(func: (uin: string) => Promise<{ result: boolean, message: string }>): void {
LoginRuntime.NapCatHelper.CoreQuickLogin = func;
},
getQQQuickLogin: async function (uin: string): Promise<{ result: boolean, message: string }> {
return await LoginRuntime.NapCatHelper.CoreQuickLogin(uin);
}
}