|
|
const _ = require('lodash');
|
|
|
const co = Promise.coroutine;
|
|
|
const helpers = global.yoho.helpers;
|
|
|
const backService = require('../models/back-service');
|
|
|
|
|
|
const SIGN_IN = helpers.urlFormat('/signin.html');
|
|
|
|
|
|
class BackNew {
|
|
|
/**
|
|
|
* 通过手机找回密码
|
|
|
*/
|
|
|
backByMobile(req, res, next) {
|
|
|
_.set(req.session, 'backupCaptch.verifyResult', false);
|
|
|
|
|
|
if (req.session.captchaValidCount == null) { // eslint-disable-line
|
|
|
req.session.captchaValidCount = 5;
|
|
|
}
|
|
|
|
|
|
co(function* () {
|
|
|
let countrysResult = yield backService.getAreaDataAsync(); // 地区信息列表
|
|
|
let countrys = _.get(countrysResult, 'data', []);
|
|
|
|
|
|
res.render('back/mobile-new', {
|
|
|
width750: true,
|
|
|
localCss: true,
|
|
|
module: 'passport',
|
|
|
page: 'back-mobile-new',
|
|
|
countrys: countrys,
|
|
|
});
|
|
|
})().catch(next);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 提交表单数据处理,设置新的密码
|
|
|
*/
|
|
|
setNewPasswordByMobileAPI(req, res, next) {
|
|
|
let phoneNum = req.body.phoneNum || '';
|
|
|
let code = req.body.code || '';
|
|
|
let areaCode = req.body.areaCode || '86';
|
|
|
let newPwd = req.body.password;
|
|
|
|
|
|
co(function* () {
|
|
|
let valiResult = yield backService.validateMobileCodeAsync(phoneNum, code, areaCode);
|
|
|
|
|
|
if (valiResult.code === 200) {
|
|
|
let token = _.get(valiResult, 'data.token', '');
|
|
|
let setPwdResult = yield backService.modifyPasswordByMobileAsyncAes(phoneNum, token, newPwd, areaCode);
|
|
|
|
|
|
if (setPwdResult.code === 200) {
|
|
|
res.json({
|
|
|
code: 200,
|
|
|
data: SIGN_IN
|
|
|
});
|
|
|
} else {
|
|
|
res.json({
|
|
|
code: 400,
|
|
|
message: '修改密码失败'
|
|
|
});
|
|
|
}
|
|
|
} else {
|
|
|
return res.json({
|
|
|
code: 400,
|
|
|
message: '验证码失败'
|
|
|
});
|
|
|
}
|
|
|
})().catch(next);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 通过邮箱找回密码
|
|
|
*/
|
|
|
backByEmail(req, res) {
|
|
|
res.render('back/email-new', {
|
|
|
width750: true,
|
|
|
localCss: true,
|
|
|
module: 'passport',
|
|
|
page: 'back-email-new'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 通过邮箱找回密码成功页
|
|
|
*/
|
|
|
backByEmailSuccess(req, res, next) {
|
|
|
let email = req.query.email || '';
|
|
|
|
|
|
if (!helpers.verifyEmail(email)) {
|
|
|
return next();
|
|
|
}
|
|
|
res.render('back/email-success-new', {
|
|
|
width750: true,
|
|
|
localCss: true,
|
|
|
module: 'passport',
|
|
|
page: 'back-email-success-new',
|
|
|
doneUrl: helpers.urlFormat('/signin.html'),
|
|
|
resendUrl: helpers.urlFormat('/passport/back/resendemail', { email: email })
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
module.exports = BackNew; |
...
|
...
|
|