InternalOAuthError:无法在nodejs中获取请求令牌passport-google

我正在尝试使用谷歌身份validationpassport谷歌身份validation用户,但它不断发送InternalOAuthError:无法获取请求令牌

错误视图

InternalOAuthError:无法在/ Users / menaka / WebstormProjects / cardCreaterServer / node_modules上的Strategy.OAuthStrategy._createOAuthError(/Users/menaka/WebstormProjects/cardCreaterServer/node_modules/passport-oauth1/lib/strategy.js:396:17)处获取请求令牌/passport-oauth1/lib/strategy.js:244:41 at /Users/menaka/WebstormProjects/cardCreaterServer/node_modules/oauth/lib/oauth.js:543:17 at passBackControl(/ Users / menaka / WebstormProjects / cardCreaterServer / node_modules /auth/lib/oauth.js:397:13)在IncomingMessage。 (/Users/menaka/WebstormProjects/cardCreaterServer/node_modules/oauth/lib/oauth.js:409:9)在位于endReadableNT的IncomingMessage.emit(events.js:166:7)的emitNone(events.js:72:20) (_stream_readable.js:921:12)
在process.tickCallback(node.js:356:17)的nextTickCallbackWith2Args(node.js:442:9)

我已经在谷歌APIpipe理器platform.and这里是我的授权JavaScript的起源歌+ api

HTTP://本地主机:3000

授权的redirectURI

HTTP://本地主机:3000 /authentication/谷歌/callback

在我的routes.js文件

var User = require('./models/user'); module.exports = function(app, passport){ app.get('/', function(req, res){ res.render('index.ejs'); }); app.get('/login', function(req, res){ res.render('login.ejs', { message: req.flash('loginMessage') }); }); app.post('/login', passport.authenticate('local-login', { successRedirect: '/profile', failureRedirect: '/login', failureFlash: true })); app.get('/signup', function(req, res){ res.render('signup.ejs', { message: req.flash('signupMessage') }); }); app.post('/signup', passport.authenticate('local-signup', { successRedirect: '/', failureRedirect: '/signup', failureFlash: true })); app.get('/profile', isLoggedIn, function(req, res){ res.render('profile.ejs', { user: req.user }); }); app.get('/auth/google', passport.authenticate('google', {scope: ['profile','email']})); app.get('/auth/google/callback', passport.authenticate('google', { successRedirect: '/profile', failureRedirect: '/' })); app.get('/logout', function(req, res){ req.logout(); res.redirect('/'); }) }; function isLoggedIn(req, res, next) { if(req.isAuthenticated()){ return next(); } res.redirect('/login'); } 

在我的passport.js里面

 var LocalStrategy = require('passport-local').Strategy; var GoogleStrategy = require('passport-google-oauth').OAuthStrategy; var User = require('../app/models/user'); var configAuth=require('./auth'); module.exports = function(passport) { passport.serializeUser(function(user, done){ done(null, user.id); }); passport.deserializeUser(function(id, done){ User.findById(id, function(err, user){ done(err, user); }); }); passport.use('local-signup', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function(req, email, password, done){ process.nextTick(function(){ User.findOne({'local.username': email}, function(err, user){ if(err) return done(err); if(user){ return done(null, false, req.flash('signupMessage', 'That email already taken')); } else { var newUser = new User(); newUser.local.username = email; newUser.local.password = newUser.generateHash(password); newUser.save(function(err){ if(err) throw err; return done(null, newUser); }) } }) }); })); passport.use('local-login', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function(req, email, password, done){ process.nextTick(function(){ User.findOne({ 'local.username': email}, function(err, user){ if(err) return done(err); if(!user) return done(null, false, req.flash('loginMessage', 'No User found')); if(!user.validPassword(password)){ return done(null, false, req.flash('loginMessage', 'invalid password')); } return done(null, user); }); }); } )); passport.use(new GoogleStrategy({ consumerKey: configAuth.GoogleAuth.clientID, consumerSecret: configAuth.GoogleAuth.clientSecret, callbackURL: configAuth.GoogleAuth.callbackURL }, function(accessToken, refreshToken, profile, done) { process.nextTick(function(){ User.findOne({'google.id':profile.id},function(err,user){ if(err){ return done(err); } if(user){ return done(null,user); }else{ var newUser=new User(); newUser.google.id=profile.id; newUser.google.token=accessToken; newUser.google.name=profile.displayName; newUser.google.email=profile.emails[0].value; newUser.save(function(err){ if(err){ throw err; } return done(null,newUser); }) } }); }); } )); }; 

callbackURL是

HTTP://本地主机:3000 /authentication/谷歌/callback

为了解决这个问题,我需要做些什么?

尝试去/node_modules/passport-oauth1/lib/strategy.js:396:17)console.log错误消息,并看到输出。

在这一段时间里,把我的头脑放在了一边 – 似乎在基本策略中有一个旧的链接参考。 推荐你试试

https://github.com/jaredhanson/passport-google-oauth2

代替。 这是最新的,并立即为我工作!

*debugging解决scheme让我这个解决,顺便说一句。