Passport Google OAuth2login前需要注销

我试图使用护照来validation谷歌login,但是,如果你尝试login第一次进入该页面,你会得到一个TokenError:

TokenError: Bad Request at Strategy.OAuth2Strategy.parseErrorResponse (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/lib/strategy.js:329:12) at Strategy.OAuth2Strategy._createOAuthError (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/lib/strategy.js:376:16) at /home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/lib/strategy.js:166:45 at /home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:191:18 at passBackControl (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:132:9) at IncomingMessage.<anonymous> (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:157:7) at emitNone (events.js:72:20) at IncomingMessage.emit (events.js:166:7) at endReadableNT (_stream_readable.js:921:12) at nextTickCallbackWith2Args (node.js:442:9) at process._tickDomainCallback (node.js:397:17) 

但是,如果您转到注销端点,然后login,则可以正常工作。

这里是代码:

 app.get('/login', authenticationController.handler); app.post('/login', authenticationController.postLogin); app.get('/logout', authenticationController.logout); app.get('/auth/google', passport.authenticate('google', {scope:['email', 'profile']})); app.get('/auth/google/callback', passport.authenticate('google', {failureRedirect: '/login'}), (req, res)=>{ var returnTo = req.session.returnTo; req.session.returnTo = null; res.redirect(returnTo || '/'); }); 

和我的护照configuration:

 var passport = require('passport'); var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy; var users = {}; exports.OAuth2Strategy = new GoogleStrategy({ clientID:'ID', clientSecret:'secret', callbackURL: '/auth/google/callback', passReqToCallback: true }, (req, accessToken, refreshToken, profile, done)=>{ users[profile.id] = profile; done(null, profile); }); passport.serializeUser((user, done)=>{ done(null, user.id); }); passport.deserializeUser((id, done)=>{ done(null, users[id]); }); exports.users = users; 

任何帮助将不胜感激,我刚刚在这个圈子。