'use strict'; const Controller = require('egg').Controller; const { CrudController } = require('naf-framework-mongoose-free/lib/controller'); const { BusinessError, ErrorCode } = require('naf-core').Error; // 项目测试及管理员登陆 class HomeController extends Controller { async index() { const { ctx } = this; ctx.body = 'hi, egg'; } /** * 系统管理员登陆 * 太简单了,就不写service了,直接在这处理完完事了 */ async login() { let admin = await this.ctx.model.Admin.findOne({}, '+password').exec(); if (!admin) throw new BusinessError(ErrorCode.FILE_FAULT, '未初始化管理员,拒绝请求!'); const { account, password } = this.ctx.request.body; if (!account) throw new BusinessError(ErrorCode.BADPARAM, '未找到要登陆用户账号'); if (!password) throw new BusinessError(ErrorCode.BADPARAM, '未找到要登陆用户密码'); if (admin.account !== account) throw new BusinessError(ErrorCode.USER_NOT_EXIST, '未找到要登录的用户'); if (admin.password.secret !== password) throw new BusinessError(ErrorCode.BAD_PASSWORD, '密码错误'); admin = JSON.parse(JSON.stringify(admin)); delete admin.password; delete admin.meta; delete admin.__v; delete admin._id; const token = this.ctx.service.util.jwt.encrypt(admin); this.ctx.ok({ data: token }); } } module.exports = CrudController(HomeController, {});