|
|
/**
|
|
|
* 找回密码
|
|
|
* Created by yoho on 2016/6/12.
|
|
|
* Created by Tao.Huang on 2016/6/12.
|
|
|
*/
|
|
|
|
|
|
'use strict';
|
...
|
...
|
@@ -12,19 +12,21 @@ const helpers = require(`${library}/helpers`); |
|
|
|
|
|
const service = require('../models/back-service');
|
|
|
|
|
|
const SIGN_IN_URL = helpers.urlFormat('signin.html');
|
|
|
|
|
|
/**
|
|
|
* 通过邮箱找回密码
|
|
|
* 通过邮箱找回密码页面
|
|
|
*/
|
|
|
module.exports.indexByEmail = (req, res) => {
|
|
|
module.exports.indexPageByEmail = (req, res) => {
|
|
|
|
|
|
let data = {
|
|
|
backUrl: helpers.urlFormat('signin.html'),
|
|
|
backUrl: SIGN_IN_URL,
|
|
|
headerText: '找回密码',
|
|
|
isPassportPage: true,
|
|
|
backEmail: true
|
|
|
};
|
|
|
|
|
|
res.render('back/by-email', Object.assign({
|
|
|
res.render('back/email', Object.assign({
|
|
|
module: 'passport',
|
|
|
page: 'back',
|
|
|
title: '找回密码-通过邮箱'
|
...
|
...
|
@@ -35,7 +37,7 @@ module.exports.indexByEmail = (req, res) => { |
|
|
/**
|
|
|
* 发送验证码到邮箱
|
|
|
*/
|
|
|
module.exports.sendEmail = (req, res, next) => {
|
|
|
module.exports.sendCodeToEmailAPI = (req, res, next) => {
|
|
|
let email = req.body.email || '';
|
|
|
|
|
|
if (!helpers.verifyEmail(email)) {
|
...
|
...
|
@@ -59,9 +61,9 @@ module.exports.sendEmail = (req, res, next) => { |
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 重新发送邮箱验证码
|
|
|
* 重新发送验证码到邮箱
|
|
|
*/
|
|
|
module.exports.resendEmail = (req, res) => {
|
|
|
module.exports.resendCodeToEmailAPI = (req, res) => {
|
|
|
let email = req.params.email || '';
|
|
|
|
|
|
service.sendCodeToEmailAsync(email).then(result => {
|
...
|
...
|
@@ -79,9 +81,9 @@ module.exports.resendEmail = (req, res) => { |
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 邮箱找回密码-成功
|
|
|
* 邮箱找回密码-返回成功页面
|
|
|
*/
|
|
|
module.exports.success = (req, res) => {
|
|
|
module.exports.backSuccessPageByEmail = (req, res) => {
|
|
|
let email = req.params.email || '';
|
|
|
|
|
|
if (!helpers.verifyEmail(email)) {
|
...
|
...
|
@@ -92,7 +94,9 @@ module.exports.success = (req, res) => { |
|
|
|
|
|
let emailUrl = `http://${domain === 'gmail.com' ? 'mail.google.com' : 'mail.'}${domain}`;
|
|
|
|
|
|
res.render('email-success', {
|
|
|
|
|
|
|
|
|
res.render('back/email-success', {
|
|
|
backUrl: helpers.urlFormat('emailback.html'),
|
|
|
headerText: '找回密码',
|
|
|
isPassportPage: true,
|
...
|
...
|
@@ -107,14 +111,14 @@ module.exports.success = (req, res) => { |
|
|
/**
|
|
|
* 根据邮箱修改密码
|
|
|
*/
|
|
|
module.exports.success = (req, res) => {
|
|
|
module.exports.changePasswordByEmailAPI = (req, res) => {
|
|
|
let pwd = req.body.password || '';
|
|
|
|
|
|
let code = req.body.code || '';
|
|
|
|
|
|
let data = {
|
|
|
code: 200,
|
|
|
data: helpers.urlFormat('signin.html')
|
|
|
data: SIGN_IN_URL
|
|
|
};
|
|
|
|
|
|
service.modifyPasswordByEmailAsync(pwd, code).then(result => {
|
...
|
...
|
@@ -132,10 +136,10 @@ module.exports.success = (req, res) => { |
|
|
/**
|
|
|
* 找回密码-通过手机号
|
|
|
*/
|
|
|
module.exports.indexByMobile = (req, res) => {
|
|
|
module.exports.indexPageByMobile = (req, res) => {
|
|
|
service.getAreaDataAsync().then(result => {
|
|
|
res.render('mobile', {
|
|
|
backUrl: helpers.urlFormat('signin.html'),
|
|
|
backUrl: SIGN_IN_URL,
|
|
|
headerText: '找回密码',
|
|
|
isPassportPage: true,
|
|
|
backMobile: true,
|
...
|
...
|
@@ -149,7 +153,7 @@ module.exports.indexByMobile = (req, res) => { |
|
|
/**
|
|
|
* 发送手机验证码
|
|
|
*/
|
|
|
module.exports.sendVerifyCodeBySMS = (req, res) => {
|
|
|
module.exports.sendCodeToMobileAPI = (req, res) => {
|
|
|
let result = {
|
|
|
code: 400,
|
|
|
message: '密码只能使用数字、字母和半角标点符号,请重新输入',
|
...
|
...
|
@@ -162,6 +166,7 @@ module.exports.sendVerifyCodeBySMS = (req, res) => { |
|
|
|
|
|
if (!helpers.verifyMobile(phoneNum)) {
|
|
|
res.json(result);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
service.sendCodeToMobileAsync(phoneNum, areaCode).then(data=> {
|
...
|
...
|
@@ -186,3 +191,97 @@ module.exports.sendVerifyCodeBySMS = (req, res) => { |
|
|
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 校验验证码页面
|
|
|
*/
|
|
|
module.exports.VerifyCodePageByMobile = (req, res) => {
|
|
|
let phoneNum = req.params.phoneNum || '';
|
|
|
|
|
|
let areaCode = `+${(req.params.areaCode || '86')}`;
|
|
|
|
|
|
res.render('mobile-code', {
|
|
|
backUrl: helpers.urlFormat('phoneback.html'),
|
|
|
headerText: '找回密码',
|
|
|
isPassportPage: true,
|
|
|
backCode: true,
|
|
|
areaCode: areaCode,
|
|
|
phoneNum: phoneNum
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 校验手机验证码
|
|
|
*/
|
|
|
module.exports.verifyCodeByMobileAPI = (req, res) => {
|
|
|
let phoneNum = req.body.phoneNum || '';
|
|
|
|
|
|
let code = req.body.code || '';
|
|
|
|
|
|
let areaCode = req.body.areaCode || '86';
|
|
|
|
|
|
service.validateMobileCodeAsync(phoneNum, code, areaCode)
|
|
|
.then(result => {
|
|
|
if (result.code === 200) {
|
|
|
result.data = helpers.urlFormat('passport/back/backcode', {
|
|
|
phoneNum: phoneNum,
|
|
|
token: result.data.token,
|
|
|
areaCode: areaCode
|
|
|
});
|
|
|
}
|
|
|
|
|
|
res.json(result);
|
|
|
}).catch(() => res.json({code: 400, message: '验证码失购'}));
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 找回密码页面,设置新密码页面-手机
|
|
|
*/
|
|
|
module.exports.forgotPasswordPageByMobile = (req, res) => {
|
|
|
let phoneNum = req.params.phoneNum || '';
|
|
|
|
|
|
let token = req.params.token || '';
|
|
|
|
|
|
let areaCode = req.params.areaCode || '86';
|
|
|
|
|
|
let code = req.params.code || '';
|
|
|
|
|
|
if (!token || (!helpers.verifyMobile(phoneNum) && !code)) {
|
|
|
res.redirect(400);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
res.render('new-password', {
|
|
|
backUrl: SIGN_IN_URL,
|
|
|
headerText: '找回密码',
|
|
|
isPassportPage: true,
|
|
|
backNewPwd: true,
|
|
|
phoneNum: phoneNum,
|
|
|
token: token,
|
|
|
areaCode: areaCode,
|
|
|
code: code,
|
|
|
title: '找回密码-输入新密码'
|
|
|
});
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 根据手机验证码修改密码
|
|
|
*/
|
|
|
module.exports.changePasswordByMobileAPI = (req, res) => {
|
|
|
let phoneNum = req.body.phoneNum || '';
|
|
|
|
|
|
let token = req.body.token || '';
|
|
|
|
|
|
let areaCode = req.body.areaCode || '86';
|
|
|
|
|
|
let newPwd = req.body.password || '';
|
|
|
|
|
|
service.modifyPasswordByMobileAsync(phoneNum, token, newPwd, areaCode)
|
|
|
.then(result => {
|
|
|
if (result.code === 200) {
|
|
|
result.data = SIGN_IN_URL;
|
|
|
}
|
|
|
|
|
|
res.json(result);
|
|
|
}).catch(() => res.json({code: 400, message: '修改密码失败'}));
|
|
|
};
|
|
|
|
...
|
...
|
|