|
@@ -1,69 +1,50 @@
|
|
-const API = require("../../lib/API");
|
|
|
|
-const { BaseStdResponse } = require("../../BaseStdResponse");
|
|
|
|
-const Redis = require('../../plugin/DataBase/Redis');
|
|
|
|
-const sendEmail = require('../../plugin/Email/Email');
|
|
|
|
|
|
+const API = require("../../lib/API")
|
|
|
|
+const { BaseStdResponse } = require("../../BaseStdResponse")
|
|
|
|
+const Redis = require('../../plugin/DataBase/Redis')
|
|
|
|
+const EmailTemplate = require('../../plugin/Email/emailTemplate')
|
|
|
|
|
|
// 发送邮箱验证码
|
|
// 发送邮箱验证码
|
|
class SendEmail extends API {
|
|
class SendEmail extends API {
|
|
constructor() {
|
|
constructor() {
|
|
- super();
|
|
|
|
|
|
+ super()
|
|
|
|
|
|
- this.setMethod("POST");
|
|
|
|
- this.setPath("/Captcha/SendEmail");
|
|
|
|
|
|
+ this.setMethod("POST")
|
|
|
|
+ this.setPath("/Captcha/SendEmail")
|
|
}
|
|
}
|
|
|
|
|
|
async onRequest(req, res) {
|
|
async onRequest(req, res) {
|
|
- const { email, text, id, type } = req.body;
|
|
|
|
|
|
+ const { email, text, id, type } = req.body
|
|
|
|
|
|
- if ([email, text, id, type].some(value => value === '' || value === null || value === undefined)) {
|
|
|
|
- res.json({
|
|
|
|
|
|
+ if ([email, text, id, type].some(value => value === '' || value === null || value === undefined))
|
|
|
|
+ return res.json({
|
|
...BaseStdResponse.MISSING_PARAMETER,
|
|
...BaseStdResponse.MISSING_PARAMETER,
|
|
endpoint: 1513126
|
|
endpoint: 1513126
|
|
- });
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ })
|
|
|
|
+
|
|
try {
|
|
try {
|
|
- const code = await Redis.get(`captcha:${id}`);
|
|
|
|
|
|
+ const code = await Redis.get(`captcha:${id}`)
|
|
if (!code || code != text.toLowerCase())
|
|
if (!code || code != text.toLowerCase())
|
|
return res.json({
|
|
return res.json({
|
|
...BaseStdResponse.SMS_CHECK_FAIL,
|
|
...BaseStdResponse.SMS_CHECK_FAIL,
|
|
msg: '验证码输入错误或已过期'
|
|
msg: '验证码输入错误或已过期'
|
|
})
|
|
})
|
|
|
|
|
|
- await Redis.del(`captcha:${id}`);
|
|
|
|
|
|
+ await Redis.del(`captcha:${id}`)
|
|
} catch (err) {
|
|
} catch (err) {
|
|
- this.logger.error(`验证图片验证码失败!${err.stack}`);
|
|
|
|
|
|
+ this.logger.error(`验证图片验证码失败!${err.stack}`)
|
|
return res.json({
|
|
return res.json({
|
|
...BaseStdResponse.DATABASE_ERR,
|
|
...BaseStdResponse.DATABASE_ERR,
|
|
msg: '验证失败!'
|
|
msg: '验证失败!'
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
- let content;
|
|
|
|
- switch (type) {
|
|
|
|
- case 'register':
|
|
|
|
- content = '您正在注册GitNexus账号,';
|
|
|
|
- break;
|
|
|
|
- case 'forget':
|
|
|
|
- content = '您正在找回GitNexus账号,';
|
|
|
|
- break;
|
|
|
|
- case 'bind':
|
|
|
|
- content = '您正在进行换绑邮箱操作,';
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- return res.json({
|
|
|
|
- ...BaseStdResponse.METHOD_NOT_EXIST
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- const code = Math.random().toFixed(6).slice(-6);
|
|
|
|
|
|
+ const code = Math.random().toFixed(6).slice(-6)
|
|
try {
|
|
try {
|
|
await Redis.set(`email:${email}`, code, {
|
|
await Redis.set(`email:${email}`, code, {
|
|
EX: 600
|
|
EX: 600
|
|
- });
|
|
|
|
|
|
+ })
|
|
} catch (err) {
|
|
} catch (err) {
|
|
- this.logger.error(`发送邮箱验证码失败!${err.stack}`);
|
|
|
|
|
|
+ this.logger.error(`发送邮箱验证码失败!${err.stack}`)
|
|
return res.json({
|
|
return res.json({
|
|
...BaseStdResponse.SMS_SEND_FAIL,
|
|
...BaseStdResponse.SMS_SEND_FAIL,
|
|
msg: '请检查邮箱格式后再试!'
|
|
msg: '请检查邮箱格式后再试!'
|
|
@@ -75,8 +56,8 @@ class SendEmail extends API {
|
|
})
|
|
})
|
|
|
|
|
|
// 先返回后发送
|
|
// 先返回后发送
|
|
- await sendEmail(email, '验证码', `${content}您的验证码为:${code}。此验证码10分钟内有效,请妥善保管您的验证码,非本人操作请忽略。`);
|
|
|
|
|
|
+ EmailTemplate.checkEmail(email, code)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-module.exports.SendEmail = SendEmail;
|
|
|
|
|
|
+module.exports.SendEmail = SendEmail
|