Authored by 陈轩

新人会场 end, TODO: 测试

... ... @@ -9,6 +9,8 @@
const passport = require('passport');
// const md5 = require('md5');
const _ = require('lodash');
const url = require('url');
const uuid = require('uuid');
const cookie = global.yoho.cookie;
const helpers = global.yoho.helpers;
... ... @@ -78,8 +80,37 @@ const common = {
}
};
/**
* 判断 referer 是否来自 个人中心( http://m.yohobuy.com/home)
* @param referer string url
* @return boolean
*/
function isFromMy(referer) {
let bool = false;
let urlObject;
if (!referer) {
return bool;
}
referer = decodeURIComponent(referer);
urlObject = url.parse(referer, false, true);
if (urlObject.host === 'm.yohobuy.com' && urlObject.pathname === '/home') {
bool = true;
}
return bool;
}
const local = {
loginPage: (req, res) => {
if (isFromMy(req.get('referer'))) {
_.set(req.session, 'phoneReg.isFromMy', true);
}
// 先清除cookie
// res.clearCookie('LE' + md5('_LOGIN_EXPIRE'), {
// domain: 'yohobuy.com'
... ...
... ... @@ -26,6 +26,7 @@ const captchaService = require('../models/captcha-service');
}
*/
/**
* 步骤校验
* step: 预期步骤
... ... @@ -361,6 +362,7 @@ let setPassword = (req, res, next) => {
let password = req.body.password;
let token = req.body.token;
let smsCode = +req.body.smsCode;
let isFromMy = _.get(req.session, 'phoneReg.isFromMy', false);
// 判断参数是否合法
if (!smsCode || !_.isString(token) || !_.isNumber(mobile) || !_.isNumber(area) || !password) {
... ... @@ -383,29 +385,39 @@ let setPassword = (req, res, next) => {
let shoppingKey = cookie.getShoppingKey(req);
// 验证注册的标识码是否有效
RegService.regMobileAes(area, mobile, password, shoppingKey, smsCode).then((result) => {
let resultCopy = null;
RegService.regMobileAes(area, mobile, password, shoppingKey, smsCode, isFromMy).then((result) => {
if (!result.code || result.code !== 200) {
return Promise.reject(result);
}
if (!result.data || !result.data.uid) {
return Promise.reject(result);
}
resultCopy = result;
return AuthHelper.syncUserSession(result.data.uid, req, res);
}).then(() => {
// 返回跳转到来源页面
let refer = req.cookies.refer;
if (refer) {
refer = decodeURI(req.cookies.refer);
if (resultCopy.data.isFromMy) {
refer = resultCopy.data.msgDelivery; // 来自个人中心,跳新人会场
} else {
refer = '/home';
}
if (refer) {
refer = decodeURI(req.cookies.refer);
} else {
refer = '/home';
}
if (/sign|login/.test(refer)) {
refer = '/home';
}
if (/sign|login/.test(refer)) {
refer = '/home';
refer = utils.refererLimit(refer);
}
refer = utils.refererLimit(refer);
delete req.session.phoneNum;
... ...
... ... @@ -96,13 +96,16 @@ const RegService = {
return api.post('', params);
},
regMobileAes(area, mobile, password, shoppingKey, smsCode) {
regMobileAes(area, mobile, password, shoppingKey, smsCode, isFromMy) {
isFromMy = isFromMy || false;
let params = {
method: 'app.passport.registerAES',
area: area,
profile: mobile,
password: aes.aesPwd(password),
verifyCode: smsCode
verifyCode: smsCode,
isFromMy
};
if (shoppingKey) {
... ...