check if session is expired
This commit is contained in:
parent
e528f1351a
commit
7c2514a9a6
4 changed files with 51 additions and 19 deletions
|
|
@ -1,14 +0,0 @@
|
|||
const uuid = require("uuid");
|
||||
|
||||
const sessionService = require('../services/sessionService');
|
||||
|
||||
async function cookieMiddleware(req, res, next) {
|
||||
if (!req.cookies.sessionUuid) {
|
||||
const sessionUuid = uuid.v7();
|
||||
res.cookie('sessionUuid', sessionUuid, { httpOnly: true, maxAge: 86400000 });
|
||||
await sessionService.createSession(sessionUuid);
|
||||
}
|
||||
next();
|
||||
}
|
||||
|
||||
module.exports = cookieMiddleware;
|
||||
27
src/middlewares/sessionMiddleware.js
Normal file
27
src/middlewares/sessionMiddleware.js
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
const uuid = require("uuid");
|
||||
|
||||
const sessionService = require('../services/sessionService');
|
||||
const constants = require('../constants');
|
||||
|
||||
async function setAndPersistNewSession(res) {
|
||||
const sessionUuid = uuid.v7();
|
||||
res.cookie('sessionUuid', sessionUuid, { httpOnly: true, maxAge: constants.DEFAULT_SESSION_DURATION_SECONDS * 1000 });
|
||||
await sessionService.createSession(sessionUuid);
|
||||
}
|
||||
|
||||
async function createSessionMiddleware(req, res, next) {
|
||||
|
||||
if (!req.cookies.sessionUuid) {
|
||||
await setAndPersistNewSession(res);
|
||||
}
|
||||
|
||||
if (req.cookies.sessionUuid) {
|
||||
if (await sessionService.isSessionExpired(req.cookies.sessionUuid)) {
|
||||
await setAndPersistNewSession(res);
|
||||
}
|
||||
}
|
||||
|
||||
next();
|
||||
}
|
||||
|
||||
module.exports = createSessionMiddleware;
|
||||
Loading…
Add table
Add a link
Reference in a new issue