防止passport.js执行serializeuser和deserializeuser函数

z5btuh9x  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(261)

以下是我为使用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中获取用户信息,而不是使用 serializeUserdeserializeUser 功能。所以我想阻止passport执行它们。。。
对这些函数进行注解后,我得到以下错误:
错误:无法将用户序列化到会话中
这可能吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题