Authored by 郭成尧

Merge branch 'hotfix/wechat' into 'feature/shop'

微信登录优化



See merge request !522
@@ -117,8 +117,29 @@ const common = { @@ -117,8 +117,29 @@ const common = {
117 return next(); 117 return next();
118 }); 118 });
119 } 119 }
120 - } 120 + },
  121 + isLoginUser: (req, res, next) => {
  122 + // 微信里边已经登录的时候,不再跳转登录
  123 + if (req.user.uid) {
  124 + AuthHelper.profile(req.user.uid).then(function(result) {
  125 + if (result.code !== 200) {
  126 + return next();
  127 + }
  128 + let refer = req.query.refer || decodeURI(req.cookies.refer) || config.siteUrl;
121 129
  130 + if (/sign|login/.test(refer)) {
  131 + refer = `${config.siteUrl}/home`;
  132 + }
  133 +
  134 + refer = utils.refererLimit(refer);
  135 + return res.redirect(refer);
  136 + }).catch(() => {
  137 + return next();
  138 + });
  139 + } else {
  140 + return next();
  141 + }
  142 + }
122 }; 143 };
123 144
124 145
@@ -280,19 +301,6 @@ const local = { @@ -280,19 +301,6 @@ const local = {
280 301
281 const wechat = { 302 const wechat = {
282 login: (req, res, next) => { 303 login: (req, res, next) => {
283 - // 微信里边已经登录的时候,不再跳转登录  
284 - // 与 5.6 的 session 有冲突  
285 - // if (req.user.uid) {  
286 - // let refer = req.query.refer || decodeURI(req.cookies.refer) || config.siteUrl;  
287 -  
288 - // if (/sign|login/.test(refer)) {  
289 - // refer = `${config.siteUrl}/home`;  
290 - // }  
291 -  
292 - // refer = utils.refererLimit(refer);  
293 - // return res.redirect(refer);  
294 - // }  
295 -  
296 // 设置为原链接标识originalUrl 304 // 设置为原链接标识originalUrl
297 req.session.originalUrl = 'true'; 305 req.session.originalUrl = 'true';
298 req.session.authState = uuid.v4(); 306 req.session.authState = uuid.v4();
@@ -75,7 +75,7 @@ router.post('/passport/sms_login/password.json', smsLogin.password); @@ -75,7 +75,7 @@ router.post('/passport/sms_login/password.json', smsLogin.password);
75 router.get('/passport/login/user', login.user); 75 router.get('/passport/login/user', login.user);
76 76
77 // 微信登录 77 // 微信登录
78 -router.get('/passport/login/wechat', login.common.beforeLogin, login.wechat.login); 78 +router.get('/passport/login/wechat', login.common.beforeLogin, login.common.isLoginUser, login.wechat.login);
79 router.get('/passport/login/wechat/callback', login.wechat.callback); 79 router.get('/passport/login/wechat/callback', login.wechat.callback);
80 80
81 // sina登录 81 // sina登录