Authored by 陈轩

merge hotfix/register

... ... @@ -162,7 +162,7 @@ let codeAction = (req, res, next) => {
res.render('reg/code', {
page: 'code',
title: '注册-验证码',
backUrl: '/?go=1', // eslint-disable-line
backUrl: '/?go=1', // eslint-disable-line
headerText: '注册', // 头部信息
isPassportPage: true, // 模板中模块标识
areaCode: area, // 默认的区号
... ... @@ -243,7 +243,6 @@ let sendCode = (req, res, next) => {
}).catch(next);
};
let verifyCode = (req, res, next) => {
let data = {
code: 400,
... ... @@ -255,7 +254,7 @@ let verifyCode = (req, res, next) => {
let area = +(req.body.areaCode || 86);
let code = +req.body.code;
/* 判断参数是否合法 */
/* 判断参数是否合法 */
if (!_.isNumber(mobile) || !_.isNumber(area) || !_.isNumber(code)) {
data.message = '手机号错误';
return res.json(data);
... ... @@ -284,7 +283,8 @@ let verifyCode = (req, res, next) => {
result.data = helpers.urlFormat('/passport/reg/password', {
token: token,
phoneNum: mobile,
areaCode: area
areaCode: area,
smsCode: code
});
break;
case 404:
... ... @@ -299,29 +299,30 @@ let verifyCode = (req, res, next) => {
/**
* Step3: set Password
*/
let passwordAction = (req, res, next) => {
let token = req.query.token;
let mobile = +req.query.phoneNum;
let area = +(req.query.areaCode || 86);
let smsCode = +req.query.smsCode;
// 判断是否允许访问, 不允许则跳转到错误页面
if (!_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !sign.verifyToken(mobile, token)) {
if (!smsCode || !_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !sign.verifyToken(mobile, token)) {
return next({
code: 403,
message: 'error token or mobile'
message: 'error token, mobile or verifyCode'
});
}
res.render('reg/password', {
page: 'password',
title: '注册-设置密码',
backUrl: '/?go=1', // eslint-disable-line
backUrl: '/?go=1', // eslint-disable-line
headerText: '注册', // 头部信息
isPassportPage: true, // 模板中模块标识
areaCode: area, // 默认的区号
phoneNum: mobile, // 手机号
token: token // 访问令牌
token: token, // 访问令牌
smsCode: smsCode // 手机验证码
});
};
... ... @@ -336,9 +337,10 @@ let setPassword = (req, res, next) => {
let area = +(req.body.areaCode || 86);
let password = req.body.password;
let token = req.body.token;
let smsCode = +req.body.smsCode;
// 判断参数是否合法
if (!_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !password) {
if (!smsCode || !_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !password) {
data.message = '请求参数不合法';
return res.json(data);
}
... ... @@ -358,7 +360,7 @@ let setPassword = (req, res, next) => {
let shoppingKey = cookie.getShoppingKey(req);
// 验证注册的标识码是否有效
RegService.regMobileAes(area, mobile, password, shoppingKey).then((result) => {
RegService.regMobileAes(area, mobile, password, shoppingKey, smsCode).then((result) => {
if (!result.code || result.code !== 200) {
return Promise.reject(result);
}
... ...
... ... @@ -218,7 +218,8 @@ exports.check = (req, res, next) => {
res.json({
code: 200,
redirect
redirect,
newer: true,
});
return;
... ... @@ -272,6 +273,7 @@ exports.password = (req, res, next) => {
let mobile = smsLogin.mobile;
let area = smsLogin.area;
let password = (req.body.password || '').trim();
let smsCode = +req.body.smsCode || 0;
if (!password) {
data.message = PASSWORD_REQUIRED;
... ... @@ -291,7 +293,7 @@ exports.password = (req, res, next) => {
let shoppingKey = cookie.getShoppingKey(req);
RegService.regMobileAes(area, mobile, password, shoppingKey).then(result => {
RegService.regMobileAes(area, mobile, password, shoppingKey, smsCode).then(result => {
if (!result.code || result.code !== 200) {
return Promise.reject(result);
}
... ...
... ... @@ -96,12 +96,13 @@ const RegService = {
return api.post('', params);
},
regMobileAes(area, mobile, password, shoppingKey) {
regMobileAes(area, mobile, password, shoppingKey, smsCode) {
let params = {
method: 'app.passport.registerAES',
area: area,
profile: mobile,
password: aes.aesPwd(password)
password: aes.aesPwd(password),
verifyCode: smsCode
};
if (shoppingKey) {
... ...
... ... @@ -9,4 +9,5 @@
<input id="phone-num" type="hidden" value="{{phoneNum}}">
<input id="area-code" type="hidden" value="{{areaCode}}">
<input id="token" type="hidden" value="{{token}}">
<input id="sms-code" type="hidden" value="{{smsCode}}">
</div>
... ...
... ... @@ -43,7 +43,8 @@ $btnSure.on('touchstart', function() {
password: pwd,
phoneNum: $('#phone-num').val(),
areaCode: $('#area-code').val(),
token: $('#token').val()
token: $('#token').val(),
smsCode: $('#sms-code').val()
},
success: function(data) {
var res = data.data;
... ...
... ... @@ -139,6 +139,11 @@ page = {
.done(function(res) {
if (res.code === 200) {
checkPoint('YB_MOBILE_LOGIN_C'); // 埋点
if (res.newer) {
res.redirect = res.redirect + '&smsCode=' + code;
}
location.href = res.redirect;
return;
}
... ...
... ... @@ -16,6 +16,7 @@ setTimeout(function() {
}, 3000);
page = {
smsCode: window.queryString.smsCode,
init: function() {
this.domInit();
this.bindEvent();
... ... @@ -33,6 +34,9 @@ page = {
});
$nextBtn.on('click', function() {
if (!self.smsCode) {
return tip.show('非法请求');
}
self.setPasswordAndLogin();
});
... ... @@ -56,6 +60,7 @@ page = {
setPasswordAndLogin: function() {
var password = $.trim($pwd.val());
var self = this;
if ($nextBtn.prop('disabled')) {
return;
... ... @@ -63,7 +68,8 @@ page = {
$nextBtn.prop('disabled', true);
$.post('/passport/sms_login/password.json', {
password: password
password: password,
smsCode: self.smsCode
})
.done(function(res) {
if (res.code === 200) {
... ...