首页 > 解决方案 > Google oauth20 匿名回调函数未在 passport.use 块中执行

问题描述

当我去 localhost:8000/auth/google 时,谷歌注册页面加载,注册护照重定向到 callbackUrl 但不执行匿名回调函数(accessToken,refreshToken,profile,done)。如果我 console.print accessToken、refreshToken、profile 什么都没有发生。

const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const keys = require('../config/keys')
const mongoose= require('mongoose')
const User = mongoose.model('User')

passport.use(
  new GoogleStrategy({
    clientID: keys.googleClientID,
    clientSecret: keys.googleClientSecret,
    callbackURL: "/auth/google/callback",
    passReqToCallback   : true
  },
  (accessToken, refreshToken, profile,done)=>{
   console.log("allgood",accessToken)
   User.findOne({googleId:profile.id})
   .then((existingUser) => {
     if (existingUser) {

     }else{
       new User({googleId:profile.id}).save();
     }
   })
    })

  )

标签: node.js

解决方案


实际上问题出在路线上,我没有添加以下路线

app.get('/auth/google/callback',passport.authenticate('google')); 

}

此外,在 passport.use 中不需要“passReqToCallback:true”。


推荐阅读