// 用户登录名称 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
|