如何使用Express,Express-session,Passport和Connect-mongo在登录用户的服务器中生成会话?

问题描述 投票:0回答:1

我正在使用express-session,passport,connect-mongo和mongodb-atlas最新版本,用于创建会话并将它们保存在服务器上,问题出在app.use(passport.session())时,甚至创建了这个会话如果用户未登录

app.use(session({
    // key: "id",
    secret: process.env.SESSION_SECRET,
    cookie: {
        httpOnly: true,
        sameSite: true,

        // secure: process.env.IN_PROD,
        maxAge: 10800000,
    }, // three hours in miliseconds
    store: new MongoStore({
        mongooseConnection: mongoose.connection,
        autoReconnect: true,
        collection: "admin.mySessions",
        serialize: serialize

    }),
    resave: false,
    saveUninitialized: false,
    name: 'Id'
}));

这导致当护照被初始化并且护照会话时cookie被保存为会话ID并且会话被保存在mongodb mi问题中是如何仅为登录的用户保存会话

express passport.js express-session mongodb-atlas connect-mongo
1个回答
0
投票

您好伙伴我不知道mongo-session,但是根据您的解释,我知道您正在为用户创建令牌,即使他们没有登录。我建议您在每次用户点击登录API时创建一个新令牌,并在注销后使令牌过期。通过此令牌仅为活动用户生成。

© www.soinside.com 2019 - 2024. All rights reserved.