第一次使用passport,我意识到当我在策略回调中记录数据时,它不会在控制台中显示,这是它的工作方式还是我做错了什么?
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: process.env.CALLBACK_URL,
passReqToCallback: true
}, function (accessToken, refreshToken, profile, done) {
console.log('this should be displayed');
done(profile)
}
);路由看起来像这样:
app.get('/api/v1/authenticate/google', passport.authenticate('google', { scope: ['https://www.googleapis.com/auth/plus.login'] }));发布于 2016-07-16 04:40:27
如果你设置了passReqToCallback:true,你的回调将以req作为第一个参数来调用。
您应该将它称为function (req, accessToken, refreshToken, profile, done),这样done就会处于正确的位置。
编辑:我知道你指的是主回调。这是一个两步的过程,所以process.env.CALLBACK_URL还应该指向一个注册了passport中间件的路由。
从文档中:
如果是callbackURL: "http://yourdormain:3000/auth/google/callback",
app.get( '/auth/google/callback',
passport.authenticate( 'google', {
successRedirect: '/auth/google/success',
failureRedirect: '/auth/google/failure'
}));https://stackoverflow.com/questions/38404338
复制相似问题