mirror of
https://github.com/spacedeck/spacedeck-open.git
synced 2025-12-16 09:57:30 +01:00
WIP first partially working version without mongodb, using sqlite/sequelize
This commit is contained in:
46
middlewares/session.js
Normal file
46
middlewares/session.js
Normal file
@@ -0,0 +1,46 @@
|
||||
'use strict';
|
||||
|
||||
const db = require('../models/db');
|
||||
var config = require('config');
|
||||
|
||||
module.exports = (req, res, next) => {
|
||||
const token = req.cookies["sdsession"];
|
||||
|
||||
if (token && token != "null" && token != null) {
|
||||
db.Session.findOne({where: {token: token}})
|
||||
.then(session => {
|
||||
if (!session) {
|
||||
// session not found
|
||||
next();
|
||||
}
|
||||
else db.User.findOne({where: {_id: session.user_id}})
|
||||
.then(user => {
|
||||
if (!user) {
|
||||
res.clearCookie('sdsession');
|
||||
|
||||
if (req.accepts("text/html")) {
|
||||
res.send("Please clear your cookies and try again.");
|
||||
} else if (req.accepts('application/json')) {
|
||||
res.status(403).json({
|
||||
"error": "token_not_found"
|
||||
});
|
||||
} else {
|
||||
res.send("Please clear your cookies and try again.");
|
||||
}
|
||||
|
||||
} else {
|
||||
req["token"] = token;
|
||||
req["user"] = user;
|
||||
next();
|
||||
}
|
||||
});
|
||||
})
|
||||
.error(err => {
|
||||
console.error("Session resolve error",err);
|
||||
next();
|
||||
});
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user