0

我在使用 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策略为例,但这不适用于我的任何策略。

我已经仔细检查了密钥是否都正确并且我拥有正确的权限,但是由于它对所有密钥都执行相同的操作,这似乎是由于特定项目造成的。

4

1 回答 1

0

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

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

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

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

于 2018-01-30T15:23:31.240 回答