Authored by htoooth

Merge branch 'feature/user-session' into feature/format

# Conflicts:
#	apps/passport/controllers/reg.js
#	config/common.js
... ... @@ -80,7 +80,7 @@ passport.use('local', new LocalStrategy({
}
};
done(null, {uid});
done(null, {uid, session_key: result.data.session_key});
} else {
errLoginTimes = errLoginTimes + 1;
accountTimes = accountTimes + 1;
... ...
... ... @@ -212,7 +212,18 @@ const bind = {
sourceType: sourceType + '_bind'
});
return loginService.syncUserSession(result.data.uid, req, res).then(() => {
let uid = {
toString() {
return this.uid;
},
uid: result.data.uid,
sessionKey: result.data.session_key,
isValid() {
return this.uid && this.sessionKey;
}
};
return loginService.syncUserSession(uid, req, res, result.data.session_key).then(() => {
return {code: 200, message: result.message, data: {refer: refer}};
});
} else {
... ... @@ -246,7 +257,18 @@ const bind = {
sourceType: sourceType + '_relate'
});
return loginService.syncUserSession(result.data.uid, req, res).then(() => {
let uid = {
toString() {
return this.uid;
},
uid: result.data.uid,
sessionKey: result.data.session_key,
isValid() {
return this.uid && this.sessionKey;
}
};
return loginService.syncUserSession(uid, req, res, result.data.session_key).then(() => {
return {code: 200, message: result.message, data: {refer: refer}};
});
} else {
... ...
... ... @@ -184,8 +184,6 @@ let sendBindMsg = (req, res, next) => {
/* 向手机发送注册验证码 */
let result = yield regService.sendCodeToMobile(area, mobile);
req.session.type = 'register-step1';
return cache.set(sendCodeKey, sendCodeTimes + 1, 3600).then(() => {
if (result.code) {
return res.json(result);
... ... @@ -231,10 +229,6 @@ let mobileRegister = (req, res, next) => {
data: ''
};
if (req.session.type !== 'register-step1') {
return res.json(data);
}
/* 判断是否是有效的注册方式,防注册机刷 */
let regExpireTime = req.session.REG_EXPIRE_;
... ... @@ -279,10 +273,18 @@ let mobileRegister = (req, res, next) => {
return res.json(data);
}
// 清除 session type
req.session.type = '';
let uid = {
toString() {
return this.uid;
},
uid: result.data.uid,
sessionKey: result.data.session_key,
isValid() {
return this.uid && this.sessionKey;
}
};
return loginService.syncUserSession(regResult.data.uid, req, res).then(() => {
return loginService.syncUserSession(uid, req, res, regResult.data.session_key).then(() => {
return res.json({
code: 200,
message: '注册成功',
... ...
... ... @@ -62,6 +62,7 @@ const syncUserSession = (uid, req, res, sessionKey) => {
res.cookie('isStudent', isStudent, {
domain: config.cookieDomain
});
res.cookie('_SESSION_KEY', authcode(sessionKey, '_SESSION_KEY', AUTH_TIME, 'encode'), {
domain: config.cookieDomain
});
... ...
... ... @@ -9,7 +9,7 @@ const authcode = require(`${global.utils}/authcode`);
// const cache = global.yoho.cache;
function decrypt(word) {
return authcode(word, '_SESSION_KEY');
return authcode(word, '_SESSION_KEY', 0, 'decode');
}
module.exports = () => {
... ... @@ -37,11 +37,12 @@ module.exports = () => {
return this.uid;
},
uid: cookie.getUid(req),
sessionKey: decrypt(req.cookies._SESSION_KEY),
sessionKey: decodeURIComponent(decrypt(req.cookies._SESSION_KEY)),
isValid() {
return this.uid && this.sessionKey;
}
};
}
// 记住我
... ...