我遇到了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
策略作为示例,但这不符合我的任何策略。
我已经仔细检查过密钥是否正确以及我是否拥有正确的权限,但由于它对所有这些密钥执行相同的操作,因此它似乎是由于特定项目所致。
答案 0 :(得分:0)
您在passport.authenticate
中收到空对象,因为您没有从正在从谷歌获取用户信息的函数调用cb
。
function(accessToken, refreshToken, profile, cb) {
console.log(accessToken);
console.log(refreshToken);
console.log(profile);
cb(null, profile);
}
不调用cb
,authentication
方法永远不会被执行
另外,请检查您是否正确设置了范围。