Как сохранить сеанс для входа в базу данных Mysql из Express -Сессия? - PullRequest
0 голосов
/ 12 февраля 2020

Я создал сеанс в express-session и хочу сохранить его в базе данных Mysql, но дело в том, что я не уверен, как это сделать. Я не знаю, как должна выглядеть эта колонка. Какое имя я должен дать в базе данных? и какую часть сеанса я должен хранить и проверять? и как тестировать и проверять сеанс, чтобы гарантировать доступ пользователю без необходимости повторного входа в систему? Я вижу много людей, использующих Redis, чтобы сделать это, но сейчас я действительно хочу использовать mysql

Это мой код

 var session = require("express-session");

    const app = express.Router();

    const TWO_HOURS = 1000 * 60 * 60 * 2; // 2 HOURS
    const IN_PRODUCTION = false; // Developing stage if is False or true for Production state

    const SESS_NAME = "sid";
    const SESS_SECRET = "somethingSecret";

    app.use(
      session({
        name: SESS_NAME,
        resave: false,
        saveUninitialized: false,
        secret: SESS_SECRET,

        cookie: {
          maxAge: TWO_HOURS,
          sameSite: true, // strict
          secure: IN_PRODUCTION
        }
      })
        );
        enter code here

    app.post("/form_login", async (req, res, next) => {
    connection.query(...) //bring the user
    if(validation)// validate the user and guarantee access    
     req.session.name = req.body.username; // create the cookie name

     console.log(req.session);

});

Это готовый выход ie пользователя

 Session {
   cookie: {
     path: '/',
     _expires: 2020-02-12T22:25:18.336Z,
     originalMaxAge: 7200000,
     httpOnly: true,
     sameSite: true,
     secure: false
   },
   name: 'John'
 }

Это моя текущая таблица пользователей в mysql

enter image description here

...