// 用户登录名称 fmMonitor@1676670512606798.onaliyun.com // 登录密码 FkK5)UixDtbN9ju&F}I#RrNiU2o2mDMl // AccessKey ID LTAI4Fv2zY8e6QsuUbhwj2Cv // AccessKeySecret PN2sZsjRTjn6OkDsdGOSC13DkmQd68 const router = require('koa-router')() const apiSDK = require('../models/apiSDK') const Core = require('@alicloud/pop-core') const bcrypt = require('bcrypt') const jwt = require('jsonwebtoken') const util = require('util') const logs = require('../utils/logs') const verify = util.promisify(jwt.verify) let secret = 'FM_Monitor' router.prefix('/apiSDK') var client = new Core({ accessKeyId: 'LTAI4Fv2zY8e6QsuUbhwj2Cv', accessKeySecret: 'PN2sZsjRTjn6OkDsdGOSC13DkmQd68', endpoint: 'https://dysmsapi.aliyuncs.com', apiVersion: '2017-05-25' }) function randomNum() { let code = '' for (let i = 0; i < 6; i++) { var radom = Math.floor(Math.random() * 10) code += radom } return code } //verification_code //短信验证码,5分钟内有效 router.get('/sendSMS', async function(ctx, res, next) { let data = ctx.query let code = randomNum() let params = { RegionId: 'cn-shanghai', PhoneNumbers: data.phone, SignName: '非法广播监测系统登录', TemplateCode: 'SMS_175075457', TemplateParam: `{'code':'${code}'}` } await apiSDK.updateVerification({ code: code, phone: data.phone }) //验证码存入数据库 let sendSMS = function() { return new Promise(function(resolve, reject) { client.request('SendSms', params, { method: 'POST' }).then( res => { resolve(res) }, ex => { resolve(ex) } ) }) } // SendSms let result = await sendSMS() data.logDes = `用户${data.phone}请求验证码登录,请求结果为${result.Message}` //日志描述 ctx.body = { code: 20000, data: result } }) router.post('/loginByCode', async function(ctx, res, next) { const start = new Date() let data = ctx.request.body await apiSDK.getUser(data).then(function(user) { if (user[0]) { let userToken = { tel: user[0].tel, user_name: user[0].user_name } const token = jwt.sign(userToken, secret, { expiresIn: '8h' }) delete user[0].password const ms = new Date() - start //响应时间 data.logDes = `${user[0].user_name}登录` logs.logLogin(ctx, ms, user[0].user_name) return (ctx.body = { code: 20000, token: token }) } else { return (ctx.body = { message: '验证码错误' }) } }) }) module.exports = router