feat: webui LoginStatus

This commit is contained in:
手瓜一十雪
2024-05-06 23:02:00 +08:00
parent bd8a1d715f
commit 856b5e16b1
4 changed files with 53 additions and 13 deletions

View File

@@ -6,23 +6,23 @@ const isEmpty = (data: any) => data === undefined || data === null || data === '
export const LoginHandler: RequestHandler = async (req, res) => { export const LoginHandler: RequestHandler = async (req, res) => {
const { token } = req.body; const { token } = req.body;
if (isEmpty(token)) { if (isEmpty(token)) {
res.status(400).send({ res.json({
code: 400, code: 0,
message: 'token is empty' message: 'token is empty'
}); });
return; return;
} }
let config = await WebUIConfig(); let config = await WebUIConfig();
if (!DataRuntime.checkLoginRate(config.loginRate)) { if (!DataRuntime.checkLoginRate(config.loginRate)) {
res.status(400).send({ res.json({
code: 400, code: 0,
message: 'login rate limit' message: 'login rate limit'
}); });
return; return;
} }
let signCredential = Buffer.from(JSON.stringify(AuthHelper.signCredential(config.token))).toString('base64'); let signCredential = Buffer.from(JSON.stringify(AuthHelper.signCredential(config.token))).toString('base64');
res.json({ res.json({
code: 200, code: 0,
message: 'success', message: 'success',
data: { data: {
"Credential": signCredential "Credential": signCredential
@@ -31,5 +31,10 @@ export const LoginHandler: RequestHandler = async (req, res) => {
return; return;
}; };
export const LogoutHandler: RequestHandler = (req, res) => { export const LogoutHandler: RequestHandler = (req, res) => {
// 这玩意无状态销毁个灯 得想想办法
res.json({
code: 0,
message: 'success'
});
return;
}; };

View File

@@ -1,5 +1,6 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { resolve } from "path";
export const GetLogHandler: RequestHandler = (req, res) => { export const GetLogHandler: RequestHandler = (req, res) => {
//res.sendFile(resolve(__dirname, "../../../logs/napcat.log"));
}; };

View File

@@ -1,8 +1,32 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { DataRuntime } from "../helper/Data";
export const GetQRcodeHandler: RequestHandler = (req, res) => { export const QQGetQRcodeHandler: RequestHandler = async (req, res) => {
if (await DataRuntime.getQQLoginStatus()) {
res.send({
code: -1,
message: 'QQ Is Logined'
});
}
}; };
export const CheckLoginStatusHandler: RequestHandler = (req, res) => { export const QQCheckLoginStatusHandler: RequestHandler = (req, res) => {
res.send({
}; code: 0,
message: 'success',
data: {
isLogin: DataRuntime.getQQLoginStatus()
}
});
};
export const QQQuickLoginHandler: RequestHandler = async (req, res) => {
// 未完成
const { token } = req.body;
if (token) {
const isLogin = await DataRuntime.getQQLoginStatus();
}
// 未实现
res.send({
code: 0,
message: 'success'
});
}

View File

@@ -1,6 +1,8 @@
let LoginRuntime = { let LoginRuntime = {
LoginCurrentTime: Date.now(), LoginCurrentTime: Date.now(),
LoginCurrentRate: 0 LoginCurrentRate: 0,
QQLoginStatus: false, //得去那边注册个回调刷新
QQQRCodeURL: ""
} }
export const DataRuntime = { export const DataRuntime = {
checkLoginRate: async function (RateLimit: number): Promise<boolean> { checkLoginRate: async function (RateLimit: number): Promise<boolean> {
@@ -14,4 +16,12 @@ export const DataRuntime = {
} }
return false; return false;
} }
,
getQQLoginStatus: async function (): Promise<boolean> {
return LoginRuntime.QQLoginStatus;
}
,
setQQLoginStatus: async function (status: boolean): Promise<void> {
LoginRuntime.QQLoginStatus = status;
}
} }