This commit is contained in:
手瓜一十雪
2024-05-07 21:47:52 +08:00
parent e9bff466b5
commit 09eaa3116a
5 changed files with 58 additions and 38 deletions

View File

@@ -2,7 +2,7 @@ import express from 'express';
import { NextFunction, Request, Response } from 'express';
import { AuthHelper } from './src/helper/SignToken';
import { resolve } from 'node:path';
import { APIRouter } from './src/router';
import { ALLRouter } from './src/router';
import { WebUIConfig } from './src/helper/config';
const app = express();
/**
@@ -14,7 +14,6 @@ const app = express();
export async function InitWebUi() {
let config = await WebUIConfig();
app.use(express.json());
app.use(AuthApi);
// 初始服务
app.all('/', (_req, res) => {
res.json({
@@ -24,38 +23,9 @@ export async function InitWebUi() {
// 配置静态文件服务,提供./static目录下的文件服务访问路径为/webui
app.use('/webui', express.static(resolve(__dirname, './static')));
//挂载API接口
app.all('/api', APIRouter);
app.use('/api', ALLRouter);
app.listen(config.port, async () => {
console.log(`[NapCat] [WebUi] Current WebUi is running at IP:${config.port}`);
})
}
export async function AuthApi(req: Request, res: Response, next: NextFunction) {
//判断当前url是否为/api/login 如果是跳过鉴权
try {
if (req.url == '/api/login') {
next();
return;
}
if (req.headers?.authorization) {
let token = req.headers?.authorization.split(' ')[1];
let Credential = JSON.parse(Buffer.from(token, 'base64').toString('utf-8'));
let credentialJson = await AuthHelper.checkCredential(Credential);
if (credentialJson) {
next();
}
res.json({
code: -1,
msg: 'Unauthorized',
});
return;
}
} catch (e: any) {
res.json({
code: -1,
msg: 'Server Error',
});
return;
}
return;
}