Authored by 毕凯

Merge branch 'feature/session2' into 'release/5.6'

Feature/session2



See merge request !452
... ... @@ -11,7 +11,7 @@ const title = 'YOHO!BUY有货年度潮流账单——快来看看你的潮流形
const index = (req, res, next) => {
let isApp = req.query.app_version || req.query.appVersion ? true : false;
let shareUrl = false;
let uid = +req.query.uid || req.user.uid;
let uid = req.user.uid || req.query.uid;
let curUrl = 'http://m.yohobuy.com/activity/annual-account';
if (!uid) {
... ... @@ -51,7 +51,7 @@ const index = (req, res, next) => {
// const getData = (req, res, next) => {
// let isApp = req.query.app_version || req.query.appVersion ? true : false;
// let shareUrl = false;
// let uid = req.query.uid || req.user.uid;
// let uid = req.user.uid || req.query.uid;
// let curUrl = 'http://m.yohobuy.com/activity/annual-account';
// let loginUrl = helpers.urlFormat('/signin.html', {
// refer: '//m.yohobuy.com/activity/annual-account'
... ...
... ... @@ -5,14 +5,7 @@ const model = require('../models/coupon-floor'),
headerModel = require('../../../doraemon/models/header');
exports.index = (req, res, next) => {
let uid = '';
if (req.yoho.isApp) {
uid = req.query.uid;
} else {
uid = req.user.uid;
}
let uid = req.user.uid || req.query.uid;
let param = {
contentCode: req.query.code
};
... ... @@ -43,13 +36,7 @@ exports.index = (req, res, next) => {
};
exports.status = (req, res, next) => {
let uid = '';
if (req.yoho.isApp) {
uid = req.query.uid;
} else {
uid = req.user.uid;
}
let uid = req.user.uid || req.query.uid;
if (!uid) {
return res.json({
... ... @@ -67,13 +54,7 @@ exports.status = (req, res, next) => {
};
exports.receive = (req, res, next) => {
let uid = '';
if (req.yoho.isApp) {
uid = req.query.uid;
} else {
uid = req.user.uid;
}
let uid = req.user.uid || req.query.uid;
if (!uid) {
return res.jsonp({
... ...
... ... @@ -10,7 +10,7 @@ exports.index = (req, res, next) => {
page: 'coupon'
},
ordercode = req.query.ordercode,
uid = req.query.uid,
uid = req.user.uid || req.query.uid,
mobile = req.query.mobile;
renderData.uid = uid;
... ...
... ... @@ -10,7 +10,7 @@ const channels = {
exports.productLst = function(req, res, next) {
let keys = ['sort', 'misort', 'msort', 'gender', 'brand'],
params = {
uid: req.query.uid,
uid: req.user.uid || req.query.uid,
udid: req.query.udid,
promotion: req.query.pid,
yh_channel: req.query.yh_channel || (req.cookies._Channel && channels[req.cookies._Channel]) || 1,
... ...
... ... @@ -37,7 +37,7 @@ exports.checkType = function(req, res, next) {
// 简介、好友领取列表页面
exports.index = (req, res, next) => {
let actId = req.query.act_id * 1 || 0;
let uid = req.query.uid || 0;
let uid = req.user.uid || req.query.uid || 0;
let renderPage = 'invite/list';
inviteModel.index({
... ... @@ -172,7 +172,7 @@ exports.register = (req, res, next) => {
// 领福利-领取优惠券API
exports.receiveCoupons = (req, res, next) => {
let uid = req.query.uid;
let uid = req.user.uid || req.query.uid;
let actId = req.query.actId;
let nums = req.query.nums;
let shareUid = req.query.shareUid;
... ... @@ -201,7 +201,7 @@ exports.myCoupons = (req, res, next) => {
let actId = req.params[2];
let nums = req.params[3];
let sign = req.query.sign;
let uid = req.cookies.inviteUid || '';
let uid = req.user.uid || req.query.uid || req.cookies.inviteUid || '';
// 这个只是过滤一下非法的参数
if (md5(amount + secretKey) !== sign || _.isEmpty(uid)) {
... ...
... ... @@ -25,7 +25,7 @@ exports.index = (req, res, next) => {
};
let params = {
uid: req.query.uid || req.user.uid,
uid: req.user.uid || req.query.uid,
shareUid: req.query.userUid
};
... ... @@ -70,7 +70,7 @@ exports.school = (req, res, next) => {
exports.checkStudent = (req, res, next) => {
let params = {
uid: req.query.uid || req.user.uid,
uid: req.user.uid || req.query.uid,
};
indexModel.checkStudent(params).then((result) => {
... ...
... ... @@ -3,8 +3,6 @@
const shopModel = require('../models/shopCollect'),
headerModel = require('../../../doraemon/models/header');
const crypto = global.yoho.crypto;
const shopIndex = (req, res) => {
let isApp = req.query.app_version || req.query.appVersion || false;
let uid = req.user.uid || req.query.uid;
... ... @@ -19,8 +17,6 @@ const shopIndex = (req, res) => {
};
} else {
if (uid) {
uid = crypto.encryption('', uid + '');
parameter = {
appVersion: true,
uid: uid
... ... @@ -56,7 +52,7 @@ const shopNav = (req, res, next) => {
const shopList = (req, res, next) => {
let uid = parseInt(crypto.decrypt('', req.query.uid), 10) || req.user.uid;
let uid = req.user.uid || req.query.uid;
let tabName = req.query.tabName;
let channelId = req.query.channelId || '';
... ... @@ -67,7 +63,7 @@ const shopList = (req, res, next) => {
// 获取店铺收藏状态
const shopFav = (req, res, next) => {
let uid = req.query.uid ? parseInt(crypto.decrypt('', req.query.uid), 10) : req.user.uid;
let uid = req.user.uid || req.query.uid;
let shopIds = req.query.shopIds;
if (!uid) {
... ...
... ... @@ -118,15 +118,10 @@ const getPlatForm = (req) => {
let arrs = [];
let isNewVersion = false;
const isProduction = process.env.NODE_ENV === 'production';
let sessionKey = req.query.session_key || req.session.SESSION_KEY;
let sessionKey = _.get(req, 'user.uid.sessionKey');
let uid;
if (sessionKey && !req.session.SESSION_KEY) {
req.session.SESSION_KEY = sessionKey;
}
// console.log(req.get('User-Agent'));
// console.log(req.query.uid);
yoho.isiOS = /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(userAgent);
yoho.isAndroid = /Android/i.test(userAgent);
... ... @@ -162,13 +157,13 @@ const getPlatForm = (req) => {
yoho.http = 'https:';
}
uid = uids && uids.length === 2 ? uids[1] : ''; // 8041246
uid = req.user.uid && req.user.uid.toString() || uid || req.query.uid || req.cookies.studentUID || '';
uid = req.user.uid || uid || req.query.uid || req.cookies.studentUID || '';
if (uid) {
yoho.uid = {
toString: () => {
return uid;
return uid.toString();
},
sessionKey: sessionKey
sessionKey
};
}
yoho.isLogin = yoho.uid ? true : false;
... ...
... ... @@ -545,13 +545,13 @@ exports.getTimeList = function(req, res, next) {
};
exports.addOrder = function(req, res, next) {
let uid = req.user.uid || req.query.uid;
let params = {
storeId: req.query.storeId,
appointTime: req.query.appointTime,
appointUserName: req.query.appointUserName,
appointMobile: req.query.appointMobile,
uid: req.query.uid,
uid: uid,
activityId: req.query.activityId,
appointContent: req.query.appointContent,
userNote: req.query.userNote,
... ...
... ... @@ -18,7 +18,7 @@ function humanNum_wan(num) {
exports.beforeIn = (req, res, next) => {
// 将APP登录状态正常化
if (req.yoho.isApp) {
req.user.uid = req.user.uid || Number(req.query.uid);
req.user.uid = req.user.uid || req.query.uid;
}
// 未登录
... ... @@ -162,7 +162,7 @@ exports.saveMsg = (req, res, next) => {
// 获取 会员日的 用户留言
exports.fetchMsg = (req, res, next) => {
let uid = req.user.uid || (req.yoho.isApp && Number(req.query.uid)) || 0;
let uid = req.user.uid || req.query.uid || 0;
vipDayModel.queryLeaveWordsList(uid).then(result => {
return res.json(result);
... ...
... ... @@ -27,7 +27,7 @@ exports.checkIsStudent = (req, res, next) => {
exports.beforeIn = (req, res, next) => {
// 将APP登录状态正常化
if (req.yoho.isApp) {
req.user.uid = req.user.uid || Number(req.query.uid);
req.user.uid = req.user.uid || req.query.uid;
}
// 未登录
... ... @@ -49,6 +49,8 @@ exports.beforeIn = (req, res, next) => {
};
exports.index = (req, res, next) => {
let uid = req.user.uid || req.query.uid;
res.locals.module = 'activity';
res.locals.page = 'vipday-entry10';
... ... @@ -70,8 +72,8 @@ exports.index = (req, res, next) => {
let isStudent = false;
// 获取学生信息
if (req.user.uid || req.query.uid) {
let result = yield vipDayModel.checkIsStudent(req.user.uid || req.query.uid);
if (uid) {
let result = yield vipDayModel.checkIsStudent(uid);
result.data && Number(result.data.isStudent) === 1 && (isStudent = true);
}
... ...
... ... @@ -25,7 +25,7 @@ const channels = {
* [编辑页面]
*/
const editor = (req, res, next) => {
let uid = req.user.uid,
let uid = req.user.uid || req.query.uid,
udid = req.sessionID,
id = req.query.id || req.params[0] || 0,
title = '编辑简介',
... ... @@ -36,9 +36,7 @@ const editor = (req, res, next) => {
req.cookies._Channel && channels[req.cookies._Channel] ||
1;
if (isApp) {
uid = req.query.uid;
} else {
if (!isApp) {
parameter = {
pageHeader: headerModel.setNav({
navTitle: title
... ... @@ -191,7 +189,7 @@ const pageData = (req, res, next) => {
* @param next
*/
const index = (req, res, next) => {
let uid = req.user.uid || req.query.uid;
let responseData = {
module: 'guang',
page: 'index',
... ... @@ -200,7 +198,7 @@ const index = (req, res, next) => {
};
let param = {
uid: req.user.uid || req.query.uid,
uid: uid,
udid: req.user.udid,
type: req.query.type || req.query.id || '0',
gender: req.query.gender || req.query.channel && typeLib.gender[req.query.channel] || '1,3'
... ... @@ -225,6 +223,7 @@ const index = (req, res, next) => {
* @param next
*/
const tag = (req, res, next) => {
let uid = req.user.uid || req.query.uid || 0;
let headerData = headerModel.setNav({
navTitle: '逛标签'
});
... ... @@ -242,7 +241,7 @@ const tag = (req, res, next) => {
tag: req.query.query,
isApp: req.query.app_version || req.query.appVersion || false,
gender: req.query.gender || '1,3',
uid: req.user.uid || req.query.uid || 0,
uid: uid,
udid: req.sessionID,
type: req.query.type || 0,
path: req.path
... ... @@ -263,6 +262,7 @@ const tag = (req, res, next) => {
*/
const listDynamicData = (req, res) => {
let uid = req.user.uid || req.query.uid;
let ids = req.query.ids;
let udid = req.sessionID;
... ... @@ -271,11 +271,7 @@ const listDynamicData = (req, res) => {
let query = req.query.query,
type = req.query.type;
if (req.user.uid) {
other.uid = req.user.uid;
} else if (req.query.uid) {
other.uid = req.query.uid;
}
other.uid = uid;
if (query) {
other.query = query;
... ...
... ... @@ -137,15 +137,9 @@ exports.userSkn = (req, res, next) => {
*/
exports.resourcesTemplate = (req, res, next) => {
let isApp = req.query.app_version || req.query.appVersion || false;
let uid = '';
let uid = req.user.uid || req.query.uid;
let param = {};
if (req.yoho.isApp) {
uid = req.query.uid;
} else {
uid = req.user.uid;
}
if (uid) {
param.uid = uid;
}
... ...
... ... @@ -84,8 +84,8 @@ const getListData = (req, res, next) => {
};
const getDetailData = (req, res, next) => {
let uid = req.user.uid || req.query.uid;
let id = req.query.id;
let uid = '';
let udid = req.sessionID || 'yoho';
let gender = req.query.gender || req.cookies._Channel && channels[req.cookies._Channel] || '1,3';
let isApp = req.query.app_version || req.query.appVersion || false;
... ... @@ -93,14 +93,6 @@ const getDetailData = (req, res, next) => {
let userAgent = req.get('User-Agent');
let isWeixin = userAgent.includes('MicroMessenger'); // 标识是否是微信访问
if (isApp) {
if (req.query.uid) {
uid = req.query.uid;
}
} else {
uid = req.user.uid;
}
if (clientType === 'ios' && isApp) {
clientType = 'iphone';
} else if (clientType === 'android' && isApp) {
... ...
... ... @@ -136,7 +136,7 @@ let collocation = (req, res) => {
*/
let collocationList = (req, res, next) => {
let params = req.query;
let uid = req.cookies.guangStarUid || 0; // 客户端访问,不能使用 cookie
let uid = req.user.uid || req.query.uid || req.cookies.guangStarUid || 0; // 客户端访问,不能使用 cookie
starModel.getCollocationListData(params, uid).then((result) => {
res.render('star/list', _.assign({
... ... @@ -155,7 +155,7 @@ let collocationList = (req, res, next) => {
* @return {[type]}
*/
let setFavorite = (req, res, next) => {
let uid = req.cookies.guangStarUid || 0;
let uid = req.user.uid || req.query.uid || req.cookies.guangStarUid || 0;
let params = {
articleId: req.body.articleId,
type: req.body.type
... ... @@ -200,7 +200,7 @@ let detail = (req, res) => {
*/
let detailList = (req, res, next) => {
let params = req.query;
let uid = req.cookies.guangStarUid || 0;
let uid = req.user.uid || req.query.uid || req.cookies.guangStarUid || 0;
starModel.getDetailData(params, uid).then((result) => {
res.render('star/list', _.assign({
... ...
... ... @@ -735,18 +735,17 @@ const setMasterCard = (req, res) => {
};
const sessionKeyAuth = (req, res, next) => {
let uid = req.query.uid || req.cookies.installmentUid || req.user.uid.toString() || '';
let sessionKey = req.query.session_key ||
req.session.SESSION_KEY || req.user.uid && req.user.uid.sessionKey || '';
let uid = req.user.uid || req.query.uid || req.cookies.installmentUid;
let sessionKey = _.get(req, 'user.uid.sessionKey');
if (sessionKey && !req.session.SESSION_KEY) {
req.session.SESSION_KEY = uid.sessionKey;
}
req.user.uid = {
toString: () => {
return uid;
return uid.toString();
},
sessionKey: sessionKey
sessionKey
};
next();
};
... ...
... ... @@ -145,4 +145,5 @@ let captcha = require('./controllers/captcha');
router.get('/passport/captcha/get', captcha.get);
router.get('/passport/img-check.jpg', captcha.imgCheck);
module.exports = router;
... ...
... ... @@ -75,7 +75,7 @@ const baseShopFav = (req, res) => {
res.setHeader('Access-Control-Allow-Origin', allowOrigin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
let uid = req.user.uid || req.query.uid || req.cookies.appUid || _getUidFromUserAgent(req);
let uid = req.user.uid || req.query.uid || _getUidFromUserAgent(req);
let shopId = req.query.shopId;
listModel.getBrandFavStatus({
... ... @@ -98,7 +98,7 @@ const baseShopFav = (req, res) => {
const _shop = (req, res, shopId) => {
let isApp = req.query.app_version || req.query.appVersion || false;
let pageHeader = {};
let uid = req.user.uid;
let uid = req.user.uid || req.query.uid;
// pagecache前端判断
if (!isApp) {
... ... @@ -114,13 +114,6 @@ const _shop = (req, res, shopId) => {
navTitle: false
}))
};
} else {
uid = req.query.uid;
req.session.appUid = uid;
res.cookie('appUid', uid, {
domain: 'yohobuy.com',
expires: new Date(Date.now() + 2592000000) // 有效期一年
});
}
listModel.getShopData(req, shopId, uid, isApp).then(result => {
... ... @@ -169,13 +162,6 @@ const shopAppCookie = (req, res) => {
res.setHeader('Access-Control-Allow-Origin', allowOrigin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
let uid = req.query.uid;
req.session.appUid = uid;
res.cookie('appUid', uid, {
domain: 'yohobuy.com',
expires: new Date(Date.now() + 2592000000) // 有效期一年
});
res.json({
code: 200,
msg: 'app cookie set',
... ... @@ -425,7 +411,7 @@ const favoriteBrand = (req, res, next) => {
res.setHeader('Access-Control-Allow-Credentials', 'true');
let id = req.query.id;
let uid = req.user.uid;
let uid = req.user.uid || req.query.uid;
let opt = req.query.opt || 'ok';
let type = req.query.type || 'product';
let appVersion = req.query.appVersion || false;
... ... @@ -435,17 +421,6 @@ const favoriteBrand = (req, res, next) => {
if (appVersion && appVersion !== 'false') {
if (req.query.uid) {
try {
uid = crypto.decrypt('', req.query.uid);
} catch (err) {
uid = req.query.uid;
}
} else {
uid = req.cookies.appUid;
}
uid = parseInt(uid, 10);
if (!uid || uid === 'undefined') {
uid = _getUidFromUserAgent(req);
}
... ... @@ -568,7 +543,7 @@ const getShopCouponsList = (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', allowOrigin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
let uid = req.query.uid || req.user.uid;
let uid = req.user.uid || req.query.uid;
let shopId = parseInt(req.query.shopId, 10);
let param = {};
... ... @@ -600,7 +575,7 @@ const getBrandCouponsList = (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', allowOrigin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
let uid = req.query.uid || req.user.uid;
let uid = req.user.uid || req.query.uid;
let brandId = parseInt(req.query.brandId, 10);
let param = {};
... ...
... ... @@ -178,7 +178,7 @@ const shop = {
shop(req, res, next) {
let isApp = req.query.app_version || req.query.appVersion || false;
let shopId = req.query.shop_id;
let uid = req.user.uid;
let uid = req.user.uid || req.query.uid;
let channel = req.yoho.channel || 'boys';
let pageHeader = {};
let appType = req.query.app_type;
... ... @@ -197,13 +197,6 @@ const shop = {
navTitle: false
}))
};
} else {
uid = req.query.uid;
req.session.appUid = uid;
res.cookie('appUid', uid, {
domain: 'yohobuy.com',
expires: new Date(Date.now() + 2592000000) // 有效期一年
});
}
return listModel.getShopIntro(shopId).then(shopInfoResult => {
... ... @@ -337,7 +330,7 @@ const shop = {
res.setHeader('Access-Control-Allow-Origin', allowOrigin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
let uid = req.user.uid || req.query.uid || req.cookies.appUid || _getUidFromUserAgent(req);
let uid = req.user.uid || req.query.uid || _getUidFromUserAgent(req);
let shopId = req.query.shopId;
return listModel.getShopIntro(shopId, uid).then(result => {
... ...
... ... @@ -201,7 +201,7 @@ const recommendShop = (req, res, next) => {
* 获取上架新品
*/
const fetchNew = (req, res, next) => {
const uid = req.user.uid;
const uid = req.user.uid || req.query.uid;
const channel = req.yoho.channel;
delete req.query.uid;
... ...
... ... @@ -126,7 +126,7 @@ const index = (req, res) => {
const indexData = (req, res, next) => {
let focusTime = Number.parseInt(req.query.time, 10) || 0;
let result = {};
let uid = req.yoho.isApp && req.query.uid;
let uid = req.user.uid || req.query.uid;
return seckillModel.queryActivity().then((resultActivity) => {
// console.log(resultActivity)
... ... @@ -243,7 +243,7 @@ const getProductList = (req, res, next) => {
}
let activityId = Number(req.query.activityId);
let startTime = Number(req.query.startTime);
let uid = req.yoho.isApp && req.query.uid;
let uid = req.user.uid || req.query.uid;
if (!activityId) {
return next();
... ...
... ... @@ -643,7 +643,7 @@ const getShopData = (req, shopId, uid, isApp) => {
shopFilterSearchData,
{
shopId: shopId,
uid: uid ? crypto.encryption('', uid + '') : '',
uid: uid,
coverChannel: channel,
seoResult: seoResult
}
... ...
... ... @@ -5,29 +5,17 @@ const imApi = require('../models/im-api');
const userApi = require('../../passport/models/auth-helper');
const imModel = require('../models/im');
const helpers = global.yoho.helpers;
const sign = global.yoho.sign;
exports.appAdapter = (req, res, next) => {
if (req.yoho.isApp) {
req.query.client_secret = req.yoho.client_secret;
if (sign.checkSign(req.query)) {
let uid = (req.query.uid || '').trim();
req.user.uid = uid;
}
if (req.yoho.isApp && !req.user.uid) {
req.user.uid = req.query.uid;
}
next();
};
exports.page = (req, res, next) => {
let uid = req.user.uid;
if (!uid) {
uid = req.query.uid;
}
let uid = req.user.uid || req.query.uid;
userApi.profile(req.user.uid)
.then(userinfo => {
... ... @@ -53,11 +41,7 @@ exports.page = (req, res, next) => {
};
exports.getOrders = (req, res, next) => {
let uid = req.user.uid;
if (!uid) {
uid = req.query.uid;
}
let uid = req.user.uid || req.query.uid;
orderModel.getOrders({
type: req.query.type || 1,
... ... @@ -89,12 +73,7 @@ exports.fetchHistory = (req, res) => {
exports.msghistory = (req, res) => {
let uid = req.user.uid;
if (!uid) {
uid = req.query.uid;
}
let uid = req.user.uid || req.query.uid;
imApi.fetchImHistory(uid).then(result => {
res.json(result);
... ...
... ... @@ -33,6 +33,42 @@ module.exports = () => {
};
}
if (!req.user.uid && req.cookies.app_uid && req.cookies.app_session_key) {
// 调用接口传参时切勿使用toString获得字符串
req.user.uid = {
toString: () => {
return req.cookies.app_uid;
},
sessionKey: req.cookies.app_session_key,
appVersion: req.cookies.app_version || void 0,
appSessionType: req.cookies.app_client_type || void 0
};
}
if (!req.user.uid &&
(req.query.uid || req.cookies.app_uid) &&
(req.query.client_type || req.cookies.app_client_type) &&
(req.query.app_version || req.cookies.app_version)) {
let uid = req.query.uid || req.cookies.app_uid;
req.query.uid = {
toString: () => {
return uid;
},
appVersion: req.query.app_version || req.cookies.app_version || void 0,
appSessionType: req.query.client_type || req.cookies.app_client_type || void 0
};
res.cookie('app_uid', req.query.uid.toString(), {
domain: 'm.yohobuy.com'
});
res.cookie('app_client_type', req.query.uid.appSessionType, {
domain: 'm.yohobuy.com'
});
res.cookie('app_version', req.query.uid.appVersion, {
domain: 'm.yohobuy.com'
});
}
next();
};
};
... ...