以下是我为使用passport.js的登录用户提供的代码:
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
app.use(passport.initialize());
// passport.serializeUser((user, done) => {
// done(null, user);
// });
// passport.deserializeUser((user, done) => {
// done(null, user);
// });
passport.use(new GoogleStrategy({
clientID: config.googleClientID,
clientSecret: config.clientSecret,
callbackURL: "/google-login/callback"
}, (accessToken, refreshToken, profile, done) => {
const userInfo = {}
userInfo.name = profile.displayName;
userInfo.email = profile.emails[0].value;
userInfo.photo = profile.photos[0].value;
console.log("userInfo", userInfo);
return done(null, profile);
}
));
app.get('/google-login', passport.authenticate('google', { scope: ['profile', 'email'] }));
app.get('/google-login/callback', passport.authenticate('google', { failureRedirect: '/signup' }),
(req, res) => {
res.redirect('/dashboard');
});
我只想从passport中获取用户信息,而不是使用 serializeUser
及 deserializeUser
功能。所以我想阻止passport执行它们。。。
对这些函数进行注解后,我得到以下错误:
错误:无法将用户序列化到会话中
这可能吗?
暂无答案!
目前还没有任何答案,快来回答吧!