Экспресс-сессия с хранилищем MySQL не спасает пользователя - PullRequest
0 голосов
/ 28 февраля 2019

Я использую экспресс-сессию для обработки пользовательской сессии в приложении Node.js.Проблема в том, что после перезаписи его для хранилища MySQL, похоже, что после изменения маршрута вся информация исчезает, и мое промежуточное ПО снова перенаправляет меня на страницу входа.Мой код:

let options = {
    host: "localhost",
    user: "root",
    port: 3306,
    password: "",
    database: "cursova"
}
var sessionStore = new MySQLStore(options, con);

app.use(session({
    key: 'myCookie',
    secret: 'secret12345',
    store: sessionStore,
    resave: false,
    saveUninitialized: false,
    cookie: {
        originalMaxAge: 1000 * 60 * 5,
        maxAge: 60000 * 5,
        secure: true,
        path: '/',
    }
}));

Результаты консоли:
console results

1 Ответ

0 голосов
/ 28 февраля 2019

Попробуйте инициализировать сеанс:

app.use((req, res, next) => {
    req.session.init = "init";
    next();
});

Для сеанса у меня есть это:

const options = {
        host: config.db.host,
        port: config.db.port,
        user: config.db.user,
        password: config.db.password,
        database: config.db.database
    };

const sessionStore = new MySQLStore(options);

const expiryDate = new Date(Date.now() + 24 * 60 * 60 * 1000); // 1 hour
app.use(session({
    store: sessionStore,
    secret: process.env.SESSIONSECRET,
    resave: false,
    saveUninitialized: false,
    cookie: {
        //secure: true,
        //httpOnly: true,
        expires: expiryDate      
    }
}));

Я не передаю соединение и у меня нет ключа.Я добавляю HTTP и защищаюсь, как только узнаю, что он работает.

...