Как я могу генерировать сессии на сервере только для зарегистрированных пользователей, с Express, Express-session, Passport и Connect-mongo? - PullRequest
0 голосов
/ 05 апреля 2019

Я использую последние версии 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 сохраняется с идентификатором сеанса, а сеанс сохраняется в MongoDB Вопрос в том, как сохранить сессию только для пользователей, вошедших в систему

1 Ответ

0 голосов
/ 05 апреля 2019

Здравствуйте, приятель! Я не знаю о монго-сессии, но из вашего объяснения я понимаю, что вы создаете токен для пользователей, даже если они не входят в систему. Я предлагаю вам создавать новый токен каждый раз, когда пользователь запускает API входа в систему, и истекает срок действия токена, как только он выходит из системы. Следуя этому токену, генерируется только для активных пользователей.

...