You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Passport Google-OAuth2策略开发登录API遇回调错误求助

解决Passport Google-OAuth2的"TypeError: OAuth2Strategy requires a verify callback"错误

这个错误其实是Passport在直白地提醒你:你给OAuth2策略传递的参数里,缺少了必须的验证回调函数,或者代码语法有问题,导致回调没被正确识别。

看你贴的代码片段,大概率是括号配对或者参数传递顺序出了问题。正确的写法应该是把配置对象和验证回调作为两个独立参数传给GoogleStrategy构造函数,下面是修正后的完整示例:

const GoogleStrategy = require('passport-google-oauth2').Strategy;

passport.use(new GoogleStrategy({
    clientID: "你的实际clientID",
    clientSecret: "你的实际clientSecret",
    callbackURL: "http://localhost:3001/auth/google/callback", // 这里要和Google控制台配置的回调URL一致,别用根路径
    passReqToCallback: true
  },
  // 这里就是必须的verify回调函数
  function(request, accessToken, refreshToken, profile, done) {
    console.log('Refresh Token:', refreshToken);
    console.log('Access Token:', accessToken);
    console.log('User Profile:', profile);
    // 这里可以根据业务逻辑处理用户信息,比如查库或创建用户
    done(null, profile); // 必须调用done来完成验证流程
  }
));

需要注意几个关键细节:

  • 确保配置对象(第一个参数)和回调函数(第二个参数)的括号完全闭合,很多时候这个错误都是因为括号没配对,导致回调被当成了配置对象的一部分,或者根本没被传入
  • callbackURL别用根路径,应该是你专门处理Google回调的路由地址,比如/auth/google/callback,这个地址必须和你在Google开发者平台里配置的“授权回调URL”完全一致
  • 验证回调函数里一定要调用done()方法,这是Passport验证流程的关键,用来通知Passport验证完成并传递用户信息

另外,如果你后续配置Facebook登录的Passport策略,也要遵循同样的规则:把配置对象和验证回调作为两个独立参数传入对应的Strategy构造函数,别犯同样的语法错误哦。

内容的提问来源于stack exchange,提问作者Surbhi Davara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:32:35