Я создал сеанс в 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](https://i.stack.imgur.com/z9ZMp.jpg)