Authored by ccbikai

修改微信登录

... ... @@ -6,7 +6,7 @@
'use strict';
const passport = require('passport');
const WeixinStrategy = require('passport-weixin-plus');
const WeixinStrategy = require('passport-weixin');
const config = require('../../config/common');
... ... @@ -15,14 +15,14 @@ let siteUrl = config.siteUrl.indexOf('//') === 0 ? 'http:' + config.siteUrl : co
/**
* wechat登录
*/
passport.use(new WeixinStrategy({
authorizationURL: 'https://open.weixin.qq.com/connect/oauth2/authorize',
tokenURL: 'https://api.weixin.qq.com/sns/oauth2/access_token',
passport.use('weixin', new WeixinStrategy({
clientID: config.thirdLogin.wechat.appID,
clientSecret: config.thirdLogin.wechat.appSecret,
callbackURL: `${siteUrl}/passport/login/wechat/callback`,
requireState: false,
requireState: true,
authorizationURL: 'https://open.weixin.qq.com/connect/oauth2/authorize',
scope: 'snsapi_userinfo'
}, (accessToken, refreshToken, profile, done) => {
}, function(accessToken, refreshToken, profile, done) {
done(null, profile);
}));
... ...
... ... @@ -7,6 +7,7 @@
const library = '../../../library';
const passport = require('passport');
const uuid = require('uuid');
const cookie = require(`${library}/cookie`);
const helpers = require(`${library}/helpers`);
const log = require(`${library}/logger`);
... ... @@ -42,7 +43,6 @@ function doPassportCallback(openId, nickname, sourceType, req, res) {
});
}
}).then((redirectTo) => {
console.log('redirectTo=', redirectTo);
return res.redirect(redirectTo);
}).catch((e) => {
log.error('频道页面渲染错误:' + JSON.stringify(e));
... ... @@ -64,7 +64,10 @@ const wechat = {
next();
},
login: (req, res, next) => {
return passport.authenticate('weixin')(req, res, next);
console.log('1');
return passport.authenticate('weixin', {
state: uuid.v4()
})(req, res, next);
},
callback: (req, res, next) => {
passport.authenticate('weixin', (err, user) => {
... ... @@ -72,8 +75,9 @@ const wechat = {
log.error(`wechat authenticate error : ${JSON.stringify(err)}`);
return res.redirect(loginPage);
}
let nickname = user.displayName || user._json.nickname;
let openId = user.id || user._json.unionid;
console.log(user);
let nickname = user._json.nickname || user.displayName;
let openId = user._json.unionid || user.id;
doPassportCallback(openId, nickname, 'wechat', req, res);
})(req, res, next);
... ...
... ... @@ -13,8 +13,8 @@ module.exports = {
port: 6001,
siteUrl: '//m.yohobuy.com',
domains: {
api: 'http://devapi.yoho.cn:58078/',
service: 'http://devservice.yoho.cn:58077/',
api: 'http://testapi.yoho.cn:28078/',
service: 'http://testservice.yoho.cn:28077/',
search: 'http://192.168.10.64:8080/yohosearch/'
},
useOneapm: false,
... ...
... ... @@ -44,6 +44,7 @@
"morgan": "^1.7.0",
"oneapm": "^1.2.20",
"passport": "^0.3.2",
"passport-weixin": "^0.1.0",
"passport-weixin-plus": "0.0.4",
"request-promise": "^3.0.0",
"serve-favicon": "^2.3.0",
... ...