PassportJS没有返回数据

时间:2018-01-30 06:06:38

标签: node.js passport.js passport-google-oauth2

我遇到了PassportJS的问题,无论我做什么,都无法让不同的模块返回任何内容。

例如,当我使用passport-google-oath20时,我有这样的代码

passport.use(new GoogleStrategy({
  clientID: keys.google.clientID,
  clientSecret: keys.google.clientSecret,
  callbackURL: "http://localhost:3000/auth/google/redirect"
},
  function(accessToken, refreshToken, profile, cb) {
    console.log(accessToken);
    console.log(refreshToken);
    console.log(profile);
  }
));

转到passport.authenticate路线,只输出

{}

我使用google策略作为示例,但这不符合我的任何策略。

我已经仔细检查过密钥是否正确以及我是否拥有正确的权限,但由于它对所有这些密钥执行相同的操作,因此它似乎是由于特定项目所致。

1 个答案:

答案 0 :(得分:0)

您在passport.authenticate中收到空对象,因为您没有从正在从谷歌获取用户信息的函数调用cb

function(accessToken, refreshToken, profile, cb) {
    console.log(accessToken);
    console.log(refreshToken);
    console.log(profile);
    cb(null, profile);
}

不调用cbauthentication方法永远不会被执行

另外,请检查您是否正确设置了范围。