node.js - 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();
}
})
})
)
解决方案
实际上问题出在路线上,我没有添加以下路线
app.get('/auth/google/callback',passport.authenticate('google'));
}
此外,在 passport.use 中不需要“passReqToCallback:true”。
推荐阅读
- javascript - javascript通过子文本获取所有div?
- woocommerce - Woocommerce 产品摘要简码
- java - 如何使文本视图可点击到 Android Studio 中的 URL
- mongodb - Docker - Mongo 数据库实例未与应用程序连接
- c# - 如何在动态查询构建方法中使用逻辑替代
- python - 如何替换字符串中一起出现的 2 个或多个特殊字符或下划线 Python
- java - VLCJ:在 VLCJ 中使用 EmbeddedMediaPlayer 和 CallbackVideoSurface 直接渲染消耗高 CPU
- intersystems-cache - Intersystems Caché CSP DIRECTORY_ROOT
- javascript - 使用单选按钮更改网站 URL
- sql - 捕获 2 个数据集中的变化