Google oauth20 匿名回调函数未在 passport.use 块中执行
Posted
技术标签:
【中文标题】Google oauth20 匿名回调函数未在 passport.use 块中执行【英文标题】:Google oauth20 anonymous cllback function is not being executed in passport.use block 【发布时间】:2020-06-13 06:24:47 【问题描述】:当我转到 localhost:8000/auth/google 时,加载 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();
)
)
)
【问题讨论】:
【参考方案1】:其实问题出在路线上,我没有添加以下路线
app.get('/auth/google/callback',passport.authenticate('google'));
而且在 passport.use 中不需要使用“passReqToCallback : true”。
【讨论】:
以上是关于Google oauth20 匿名回调函数未在 passport.use 块中执行的主要内容,如果未能解决你的问题,请参考以下文章
Google oauth20 的 Passport,未使用中间件,passport.initialize()