shaogen1995 1 неделя назад
Родитель
Сommit
2bb96d0afc
5 измененных файлов с 20 добавлено и 15 удалено
  1. 4 4
      README.md
  2. 1 0
      src/config/config.default.ts
  3. 6 2
      src/middleware/index.ts
  4. 4 4
      src/middleware/jwt.ts
  5. 5 5
      src/middleware/proof.ts

+ 4 - 4
README.md

@@ -6,13 +6,13 @@
 1:常用管理命令
 查看所有运行中的应用状态:pm2 list
 
-查看实时日志:pm2 logs 名字
+查看实时日志:pm2 logs anHui_guoJiaTongBuFuShe
 
-重启应用(例如代码更新后):pm2 restart 名字
+重启应用(例如代码更新后):pm2 restart anHui_guoJiaTongBuFuShe
 
-停止应用:pm2 stop 名字
+停止应用:pm2 stop anHui_guoJiaTongBuFuShe
 
-从 PM2 列表中删除应用:pm2 delete 名字
+从 PM2 列表中删除应用:pm2 delete anHui_guoJiaTongBuFuShe
 
 2.进阶设置:开机自启
 

+ 1 - 0
src/config/config.default.ts

@@ -1,5 +1,6 @@
 // 400 - 参数错误
 // 401 - 没有接口权限/没有传token/token失效
+// 402 - proof错误
 // 500 - 服务器代码错误
 // 404 - 没有找到数据
 // 0   - 接口正常

+ 6 - 2
src/middleware/index.ts

@@ -7,7 +7,7 @@ import resSend from '../util/resSend.js';
 // 1:----------------有些接口只能管理员能操作
 export const isAdminZhong = (req: any, res: any, next: any) => {
   if (req.user.isAdmin === 1) next();
-  else return resSend(res, 401, '没有接口权限');
+  else return resSend(res, 401, '没有权限');
 };
 
 // 2:----------------捕捉路由中的错误
@@ -22,11 +22,15 @@ export const errorHandler = (err: any, req: any, res: any, next: any) => {
   // 记录错误日志,便于后端排查
   // console.error('错误处理中间件捕获到异常:', err);
 
+  let userName = '-';
+  if (req.userName) userName = req.userName;
+  else if (req.user && req.user.userName) userName = req.user.userName;
+
   if (!isEnv) {
     const obj: any = {
       method: req.method,
       url: req.originalUrl,
-      userName: req.userName || req.user.userName || '-',
+      userName,
       apiDescription: req.apiDescription || '',
       ip: ipLocResFu(req), // 获取IP
       userAgent: req.get('User-Agent'), // 获取User-Agent

+ 4 - 4
src/middleware/jwt.ts

@@ -23,7 +23,7 @@ export const verifyToken = async (req: any, res: any, next: any) => {
   // 获取请求头里面的token
   let token = req.headers.token || '';
 
-  if (!token) return resSend(res, 401, '请传入用户凭证');
+  if (!token) return resSend(res, 401, '请先登录');
 
   try {
     const decoded = await verify(token, tokenKey);
@@ -36,7 +36,7 @@ export const verifyToken = async (req: any, res: any, next: any) => {
 
     next();
   } catch (error) {
-    return resSend(res, 401, '用户凭证无效');
+    return resSend(res, 401, '登陆超时,请重新登录');
   }
 };
 
@@ -45,7 +45,7 @@ export const verifyToken2 = async (req: any, res: any, next: any) => {
   // 获取请求头里面的token
   let token = req.headers.token || '';
 
-  if (!token) return resSend(res, 401, '请传入用户凭证');
+  if (!token) return resSend(res, 401, '请先登录');
 
   try {
     const decoded = await verify(token, tokenKey);
@@ -58,6 +58,6 @@ export const verifyToken2 = async (req: any, res: any, next: any) => {
 
     next();
   } catch (error) {
-    return resSend(res, 401, '用户凭证无效');
+    return resSend(res, 401, '登陆超时,请重新登录');
   }
 };

+ 5 - 5
src/middleware/proof.ts

@@ -9,7 +9,7 @@ const proofZhong = (req: any, res: any, next: any) => {
   } else {
     // 获取请求头里面的 proof
     let proof: string = req.headers.proof || '';
-    if (!proof) return resSend(res, 401, 'proof is null');
+    if (!proof) return resSend(res, 402, 'proof is null');
 
     try {
       const [timeCuo, timeMi, timeShi] = proof.split('||');
@@ -24,14 +24,14 @@ const proofZhong = (req: any, res: any, next: any) => {
         // 传入proof有效的时间(加密字符串) - 解密
         const timeShiRes = passWordJie(timeShi);
 
-        if (timeMiRes !== timeCuo) return resSend(res, 401, 'proof err');
+        if (timeMiRes !== timeCuo) return resSend(res, 402, 'proof err');
 
-        if (Date.now() - timeCuoRes > Number(timeShiRes)) return resSend(res, 401, 'proof err');
+        if (Date.now() - timeCuoRes > Number(timeShiRes)) return resSend(res, 402, 'proof err');
 
         next();
-      } else return resSend(res, 401, 'proof err');
+      } else return resSend(res, 402, 'proof err');
     } catch (error: any) {
-      return resSend(res, 401, 'proof err');
+      return resSend(res, 402, 'proof err');
     }
   }
 };