feat: 初始化智能物联网设备管理系统前后端基础项目

完成项目整体结构搭建,包含:
1. 前端Vue3+TS+Vite+Antd项目基础配置与核心依赖
2. 后端MidwayJS+TypeORM+JWT权限认证框架
3. 完整的用户、角色、权限、日志数据库表结构
4. 核心业务模块API与基础服务实现
5. 全局样式、路由、状态管理配置
This commit is contained in:
andyesfly committed 2026-05-28 16:23:15 +08:00
commit 3d7eb12103
89 files changed
+16085

No files matched your search

+55
View File
@@ -0,0 +1,55 @@
import { Middleware, IMiddleware, Config } from '@midwayjs/core';
import { Context, NextFunction } from '@midwayjs/koa';
import { Provide, Inject } from '@midwayjs/core';
import { TokenUtil } from '../util/token';
@Provide()
export class AuthMiddleware implements IMiddleware<Context, NextFunction> {
@Inject()
tokenUtil!: TokenUtil;
resolve() {
return async (ctx: Context, next: NextFunction) => {
const authHeader = ctx.header.authorization;
if (!authHeader || !authHeader.startsWith('Bearer ')) {
ctx.status = 401;
ctx.body = {
code: 401,
message: '未提供认证令牌',
};
return;
}
const token = authHeader.substring(7);
try {
const decoded = this.tokenUtil.verifyToken(token);
ctx.state.user = {
userId: decoded.userId,
username: decoded.username,
};
ctx.user = ctx.state.user;
await next();
} catch (error: any) {
if (error.name === 'TokenExpiredError') {
ctx.status = 401;
ctx.body = {
code: 401,
message: '登录已过期,请重新登录',
expired: true,
};
} else {
ctx.status = 401;
ctx.body = {
code: 401,
message: '无效的认证令牌',
};
}
}
};
}
}