mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-02-06 13:05:09 +00:00
feat: webui auth
This commit is contained in:
@@ -6,13 +6,13 @@ import { OB11Config } from "@/webui/ui/components/WebUiApiOB11Config";
|
||||
const isEmpty = (data: any) => data === undefined || data === null || data === '';
|
||||
export const OB11GetConfigHandler: RequestHandler = async (req, res) => {
|
||||
let isLogin = await DataRuntime.getQQLoginStatus();
|
||||
// if (!isLogin) {
|
||||
// res.send({
|
||||
// code: -1,
|
||||
// message: 'Not Login'
|
||||
// });
|
||||
// return;
|
||||
// }
|
||||
if (!isLogin) {
|
||||
res.send({
|
||||
code: -1,
|
||||
message: 'Not Login'
|
||||
});
|
||||
return;
|
||||
}
|
||||
const uin = await DataRuntime.getQQLoginUin();
|
||||
let configFilePath = resolve(__dirname, `./config/onebot11_${uin}.json`);
|
||||
//console.log(configFilePath);
|
||||
@@ -37,13 +37,13 @@ export const OB11GetConfigHandler: RequestHandler = async (req, res) => {
|
||||
}
|
||||
export const OB11SetConfigHandler: RequestHandler = async (req, res) => {
|
||||
let isLogin = await DataRuntime.getQQLoginStatus();
|
||||
// if (!isLogin) {
|
||||
// res.send({
|
||||
// code: -1,
|
||||
// message: 'Not Login'
|
||||
// });
|
||||
// return;
|
||||
// }
|
||||
if (!isLogin) {
|
||||
res.send({
|
||||
code: -1,
|
||||
message: 'Not Login'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (isEmpty(req.body.config)) {
|
||||
res.send({
|
||||
code: -1,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { Router } from 'express';
|
||||
import { QQCheckLoginStatusHandler, QQGetQRcodeHandler, QQGetQuickLoginListHandler } from '../api/QQLogin';
|
||||
import { QQCheckLoginStatusHandler, QQGetQRcodeHandler, QQGetQuickLoginListHandler, QQSetQuickLoginHandler } from '../api/QQLogin';
|
||||
const router = Router();
|
||||
router.all('/GetQuickLoginList', QQGetQuickLoginListHandler)
|
||||
router.post('/CheckLoginStatus', QQCheckLoginStatusHandler);
|
||||
router.post('/GetQQLoginQrcode', QQGetQRcodeHandler);
|
||||
router.post('/SetQuickLogin', QQSetQuickLoginHandler);
|
||||
export { router as QQLoginRouter };
|
||||
@@ -4,20 +4,22 @@ import { NextFunction, Request, Response } from 'express';
|
||||
import { QQLoginRouter } from "./QQLogin";
|
||||
import { AuthRouter } from "./auth";
|
||||
import { OB11ConfigRouter } from "./OB11Config";
|
||||
import { WebUiConfig } from "../helper/config";
|
||||
const router = Router();
|
||||
export async function AuthApi(req: Request, res: Response, next: NextFunction) {
|
||||
//判断当前url是否为/api/login 如果是跳过鉴权
|
||||
console.log(req.url);
|
||||
//判断当前url是否为/login 如果是跳过鉴权
|
||||
try {
|
||||
if (req.url == '/api/auth/login') {
|
||||
if (req.url == '/auth/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);
|
||||
let config = await WebUiConfig.GetWebUIConfig();
|
||||
let credentialJson = await AuthHelper.validateCredentialWithinOneHour(config.token, Credential);
|
||||
if (credentialJson) {
|
||||
//通过验证
|
||||
next();
|
||||
}
|
||||
res.json({
|
||||
@@ -39,7 +41,7 @@ export async function AuthApi(req: Request, res: Response, next: NextFunction) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
//router.use('/*', AuthApi);//鉴权
|
||||
router.use(AuthApi);
|
||||
router.all("/test", (req, res) => {
|
||||
res.json({
|
||||
code: 0,
|
||||
@@ -47,6 +49,6 @@ router.all("/test", (req, res) => {
|
||||
});
|
||||
});
|
||||
router.use('/auth', AuthRouter);
|
||||
router.use('/QQLogin',QQLoginRouter);
|
||||
router.use('/OB11Config',OB11ConfigRouter);
|
||||
router.use('/QQLogin', QQLoginRouter);
|
||||
router.use('/OB11Config', OB11ConfigRouter);
|
||||
export { router as ALLRouter }
|
||||
Reference in New Issue
Block a user