zs 1 年之前
父節點
當前提交
4686ce0d4f
共有 2 個文件被更改,包括 20 次插入0 次删除
  1. 11 0
      src/controller/login.controller.ts
  2. 9 0
      src/service/login.service.ts

+ 11 - 0
src/controller/login.controller.ts

@@ -40,6 +40,17 @@ export class LoginController {
     return token;
   }
 
+  @Post('/refresh/:type')
+  async toRefresh(@Body() data, @Param('type') type: string) {
+    const user = await this.loginService.refresh(data, LoginType[type]);
+    user.role = type;
+    let vo = new LoginVO(user);
+    vo = JSON.parse(JSON.stringify(vo));
+    vo.login_code = await this.loginService.onePointLogin(vo);
+    const token = await this.jwtService.sign(vo, this.jwtSecret);
+    return token;
+  }
+
   /**
    * TODO:微信小程序登录
    * @param openid 微信小程序openid

+ 9 - 0
src/service/login.service.ts

@@ -78,6 +78,15 @@ export class LoginService {
     if (!isEqual(user.password.secret, data.password)) throw new ServiceError(this.i18n.translateError(FrameErrorEnum.BAD_PASSWORD), FrameErrorEnum.BAD_PASSWORD);
     return user;
   }
+
+  // 刷新token
+  async refresh(data, type: LoginType) {
+    if (!data.id) throw new ServiceError(this.i18n.translateError(FrameErrorEnum.USER_NOT_FOUND), FrameErrorEnum.USER_NOT_FOUND);
+    const model = GetModel(upperFirst(type));
+    const user = await model.findById(data.id).lean();
+    if (!user) throw new ServiceError(this.i18n.translateError(FrameErrorEnum.USER_NOT_FOUND), FrameErrorEnum.USER_NOT_FOUND);
+    return user;
+  }
   /**
    * 检查用户是否可以登录(从用户本身和角色检查)
    * @param user 用户信息