From 4168be60d73ae94a10af6dbf8397160318899dc8 Mon Sep 17 00:00:00 2001 From: yuan_yi <1650192445@qq.com> Date: Fri, 29 Apr 2022 15:24:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20AUTH?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/app/lib/controllers/auth/index.js | 189 ------------------ .../api/app/lib/routes/auth/index.js | 32 --- 2 files changed, 221 deletions(-) delete mode 100644 code/VideoAccess-VCMP/api/app/lib/controllers/auth/index.js delete mode 100644 code/VideoAccess-VCMP/api/app/lib/routes/auth/index.js diff --git a/code/VideoAccess-VCMP/api/app/lib/controllers/auth/index.js b/code/VideoAccess-VCMP/api/app/lib/controllers/auth/index.js deleted file mode 100644 index 00040ce..0000000 --- a/code/VideoAccess-VCMP/api/app/lib/controllers/auth/index.js +++ /dev/null @@ -1,189 +0,0 @@ -'use strict'; -const Hex = require('crypto-js/enc-hex'); -const MD5 = require('crypto-js/md5'); -const moment = require('moment'); -const uuid = require('uuid'); - -async function login(ctx, next) { - const transaction = await ctx.fs.dc.orm.transaction(); - try { - const models = ctx.fs.dc.models; - const params = ctx.request.body; - let password = Hex.stringify(MD5(params.password)); - - const userRes = await models.User.findOne({ - where: { - username: params.username, - password: password, - delete: false, - }, - attributes: { exclude: ['password'] }, - include: [{ - attributes: ["resourceId"], - model: models.UserResource - }] - }); - - if (!userRes) { - ctx.status = 400; - ctx.body = { - "message": "账号或密码错误" - } - } else if (!userRes.enable) { - ctx.status = 400; - ctx.body = { message: "该用户已被禁用" } - } else { - const token = uuid.v4(); - - let userRslt = Object.assign(userRes.dataValues, { - authorized: true, - token: token, - userResources: userRes.userResources.map(r => r.resourceId), - }); - - await models.UserToken.create({ - token: token, - userInfo: userRslt, - expired: moment().add(30, 'days').format() - }); - - ctx.status = 200; - ctx.body = userRslt; - } - await transaction.commit(); - } catch (error) { - await transaction.rollback(); - ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); - ctx.status = 400; - ctx.body = { - "message": "登录失败" - } - } -} - -/** - * 微信小程序登录 - * @@requires.body {phone-手机号, password-密码} ctx - */ -async function wxLogin(ctx, next) { - const transaction = await ctx.fs.dc.orm.transaction(); - try { - const models = ctx.fs.dc.models; - const params = ctx.request.body; - let password = Hex.stringify(MD5(params.password)); - const userRes = await models.User.findOne({ - where: { - phone: params.phone, - password: password, - delete: false, - }, - attributes: { exclude: ['password'] } - }); - if (!userRes) { - ctx.status = 400; - ctx.body = { message: "手机号或密码错误" } - } else if (!userRes.enable) { - ctx.status = 400; - ctx.body = { message: "该用户已被禁用" } - } else { - const token = uuid.v4(); - //获取用户关注区域信息 - const departmentRes = await models.Department.findOne({ where: { id: userRes.departmentId } }); - let attentionRegion = departmentRes; - while (attentionRegion.dependence && attentionRegion.type != 1) { - const departmentParent = await models.Department.findOne({ where: { id: attentionRegion.dependence } }); - attentionRegion = { - ...departmentParent.dataValues, - nextRegin: attentionRegion - } - } - //获取用户权限信息 - const resourceRes = await models.UserResource.findAll({ - where: { - userId: userRes.id - }, - include: [{ - model: models.Resource, - attributes: ['code', 'name'], - }], - attributes: [] - }); - let userRslt = Object.assign({ - authorized: true, - token: token, - ...userRes.dataValues - }); - await models.UserToken.create({ - token: token, - userInfo: userRslt, - expired: moment().add(30, 'day').format('YYYY-MM-DD HH:mm:ss') - }, { transaction: transaction }); - ctx.status = 200; - ctx.body = Object.assign({ - ...userRslt, - userRegionType: departmentRes.type,//1-市级,2-区县级,3-乡镇级,4-村级 - attentionRegion: attentionRegion, - resources: resourceRes.map(r => r.resource) - }); - } - await transaction.commit(); - } catch (error) { - await transaction.rollback(); - ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); - ctx.status = 400; - ctx.body = { - "message": "登录失败" - } - } -} - -async function logout(ctx) { - try { - const { token, code } = ctx.request.body; - const models = ctx.fs.dc.models; - - await models.UserToken.destroy({ - where: { - token: token, - }, - }); - - ctx.status = 204; - } catch (error) { - ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); - ctx.status = 400; - ctx.body = { - "message": "登出失败" - } - } -} - -/** - * 微信小程序登出 - * @request.body {token-用户登录Token} ctx - */ -async function wxLogout(ctx) { - try { - const { token } = ctx.request.body; - const models = ctx.fs.dc.models; - await models.UserToken.destroy({ - where: { - token: token, - }, - }); - ctx.status = 204; - } catch (error) { - ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); - ctx.status = 400; - ctx.body = { - "message": "登出失败" - } - } -} - -module.exports = { - login, - wxLogin, - logout, - wxLogout -}; \ No newline at end of file diff --git a/code/VideoAccess-VCMP/api/app/lib/routes/auth/index.js b/code/VideoAccess-VCMP/api/app/lib/routes/auth/index.js deleted file mode 100644 index b0de650..0000000 --- a/code/VideoAccess-VCMP/api/app/lib/routes/auth/index.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -const auth = require('../../controllers/auth'); - -module.exports = function (app, router, opts) { - /** - * @api {Post} login 登录. - * @apiVersion 1.0.0 - * @apiGroup Auth - */ - app.fs.api.logAttr['POST/login'] = { content: '登录', visible: true }; - router.post('/login', auth.login); - - /** - * @api {POST} wxLogin 微信小程序登录.(使用手机号、密码登录) - * @apiVersion 1.0.0 - * @apiGroup Auth - */ - app.fs.api.logAttr['POST/wxLogin'] = { content: '微信小程序登录', visible: true }; - router.post('/wxLogin', auth.wxLogin); - - app.fs.api.logAttr['PUT/logout'] = { content: '登出', visible: false }; - router.put('/logout', auth.logout); - - /** - * @api {PUT} wxLogout 微信小程序登出 - * @apiVersion 1.0.0 - * @apiGroup Auth - */ - app.fs.api.logAttr['PUT/wxLogout'] = { content: '登出', visible: false }; - router.put('/wxLogout', auth.wxLogout); -};