Browse Source

answer_tea&agent_mech登陆

lrf 3 years ago
parent
commit
24178a4136

+ 3 - 0
app/controller/patent/.agent_mech.js

@@ -40,4 +40,7 @@ module.exports = {
       count: true,
     },
   },
+  login: {
+    requestBody: ['!phone', '!password'],
+  },
 };

+ 3 - 0
app/controller/patent/.answer_tea.js

@@ -45,4 +45,7 @@ module.exports = {
       count: true,
     },
   },
+  login: {
+    requestBody: ['!phone', '!password'],
+  },
 };

+ 2 - 1
app/router/patent/agent_mech.js

@@ -7,6 +7,7 @@ module.exports = (app) => {
   const index = 'patent';
   const target = 'agentMech';
   const mware = app.middleware.createPassword();
+  router.post(target, `${profix}${vision}/${index}/${target}/login`, controller[index][target].login);
   router.resources(target, `${profix}${vision}/${index}/${target}`, mware, controller[index][target]); // index、create、show、destroy
   router.post(target, `${profix}${vision}/${index}/${target}/update/:id`, mware, controller[index][target].update);
-};
+};;

+ 1 - 0
app/router/patent/answer_tea.js

@@ -7,6 +7,7 @@ module.exports = (app) => {
   const index = 'patent';
   const target = 'answerTea';
   const mware = app.middleware.createPassword();
+  router.post(target, `${profix}${vision}/${index}/${target}/login`, controller[index][target].login);
   router.resources(target, `${profix}${vision}/${index}/${target}`, mware, controller[index][target]); // index、create、show、destroy
   router.post(target, `${profix}${vision}/${index}/${target}/update/:id`, mware, controller[index][target].update);
 };

+ 12 - 1
app/service/patent/agent_mech.js

@@ -3,13 +3,24 @@ const { CrudService } = require('naf-framework-mongoose/lib/service');
 const { BusinessError, ErrorCode } = require('naf-core').Error;
 const _ = require('lodash');
 const assert = require('assert');
-
 // 代理机构
 class Agent_mechService extends CrudService {
   constructor(ctx) {
     super(ctx, 'agent_mech');
     this.model = this.ctx.model.Patent.AgentMech;
   }
+  async login({ phone, password }) {
+    const object = await this.model.findOne({ phone }, '+password');
+    if (!object) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '未找到用户的信息');
+    const { password: op } = object;
+    const { secret } = op;
+    if (secret !== password) throw new BusinessError(ErrorCode.BAD_PASSWORD, '密码错误');
+    const data = _.omit(JSON.parse(JSON.stringify(object)), ['meta', 'password', '__v']);
+    const { secret: secrets } = this.config.jwt;
+    const jwt = require('jsonwebtoken');
+    const token = jwt.sign(data, secrets);
+    return token;
+  }
 }
 
 module.exports = Agent_mechService;

+ 12 - 0
app/service/patent/answer_tea.js

@@ -10,6 +10,18 @@ class Answer_teaService extends CrudService {
     super(ctx, 'answer_tea');
     this.model = this.ctx.model.Patent.AnswerTea;
   }
+  async login({ phone, password }) {
+    const object = await this.model.findOne({ phone }, '+password');
+    if (!object) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '未找到用户的信息');
+    const { password: op } = object;
+    const { secret } = op;
+    if (secret !== password) throw new BusinessError(ErrorCode.BAD_PASSWORD, '密码错误');
+    const data = _.omit(JSON.parse(JSON.stringify(object)), ['meta', 'password', '__v']);
+    const { secret: secrets } = this.config.jwt;
+    const jwt = require('jsonwebtoken');
+    const token = jwt.sign(data, secrets);
+    return token;
+  }
 }
 
 module.exports = Answer_teaService;