...
|
...
|
@@ -94,35 +94,36 @@ class Auth { |
|
|
return md5(secretStr + clientSecret);
|
|
|
}
|
|
|
|
|
|
static thirdLogin(req, uid) {
|
|
|
if (req.session.thirdType && req.session.thirdBackurl && req.session.refer) {
|
|
|
let refer = url.parse(req.session.refer || '');
|
|
|
|
|
|
if (!/m\.yohobuy\.com$/.test(refer.host)) { // 非站内登录
|
|
|
let backurl = url.parse(req.session.thirdBackurl),
|
|
|
account = thirdAccount[req.session.thirdType];
|
|
|
|
|
|
let params = Object.assign({
|
|
|
yh_uid: uid,
|
|
|
yh_type: req.session.thirdType,
|
|
|
yh_time: moment().format('YYYY-MM-DD HH:mm:ss')
|
|
|
}, querystring.parse(backurl.query));
|
|
|
let signStr = this.thirdSign(params, account.clientSecret);
|
|
|
|
|
|
params.yh_sign = signStr;
|
|
|
let queryStr = _.join(_.map(params, (v, k) => {
|
|
|
return `${k}=${encodeURIComponent(v)}`;
|
|
|
}), '&');
|
|
|
|
|
|
return {
|
|
|
refer: `${backurl.protocol}//${backurl.host}?${queryStr}`
|
|
|
};
|
|
|
}
|
|
|
req.session.thirdType && (delete req.session.thirdType);
|
|
|
req.session.thirdBackurl && (delete req.session.thirdBackurl);
|
|
|
req.session.refer && (delete req.session.refer);
|
|
|
static thirdLogin(req, res, uid) {
|
|
|
if (req.cookies.third_type && req.cookies.third_backurl && req.cookies.third_refer) {
|
|
|
let backurl = url.parse(req.cookies.third_backurl),
|
|
|
account = thirdAccount[req.cookies.third_type];
|
|
|
|
|
|
let params = Object.assign({
|
|
|
yh_uid: uid,
|
|
|
yh_type: req.cookies.third_type,
|
|
|
yh_time: moment().format('YYYY-MM-DD HH:mm:ss')
|
|
|
}, querystring.parse(backurl.query));
|
|
|
let signStr = this.thirdSign(params, account.clientSecret);
|
|
|
|
|
|
params.yh_sign = signStr;
|
|
|
let queryStr = _.join(_.map(params, (v, k) => {
|
|
|
return `${k}=${encodeURIComponent(v)}`;
|
|
|
}), '&');
|
|
|
|
|
|
return {
|
|
|
refer: `${backurl.protocol}//${backurl.host}?${queryStr}`
|
|
|
};
|
|
|
}
|
|
|
|
|
|
res.clearCookie('third_type', {
|
|
|
domain: 'yohobuy.com'
|
|
|
});
|
|
|
res.clearCookie('third_backurl', {
|
|
|
domain: 'yohobuy.com'
|
|
|
});
|
|
|
res.clearCookie('third_refer', {
|
|
|
domain: 'yohobuy.com'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
static syncUserSession(uid, req, res, sessionKey) {
|
...
|
...
|
@@ -186,7 +187,7 @@ class Auth { |
|
|
});
|
|
|
|
|
|
// 第三方登录逻辑
|
|
|
return this.thirdLogin(req, uid);
|
|
|
return this.thirdLogin(req, res, uid);
|
|
|
});
|
|
|
}
|
|
|
}
|
...
|
...
|
|