Я нахожусь на ранней стадии приложения и пытаюсь понять, каков наилучший способ сделать безопасные сессии, обычно я go для повара ie -сессия и express, это нормально или это Требуется лучший подход?
Пример кода, который я использую (не считайте пользовательскую часть, которая является производственным массивом, который будет моделью, исходя из mysql дБ, например)
const express = require('express');
const session = require('cookie-session');
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(session({
name: 'session',
keys: ['key1', 'key2'],
secret: 'secret',
cookie: {
secure: true,
httpOnly: false,
path: 'foo/bar',
expires: new Date(Date.now() + 60 * 60 * 1000 * 24 * 365)
}
}));
users = [
{
"id":1,
"email":"mail@gmail.com",
"username":"username",
"userpass":"userpass123"
}
];
app.get("/home",function(req,res){
res.send(req.session.user);
})
app.post("/login",(req,res)=>{
for (var i = 0; i < users.length; i++) {
if(req.body.email == users[i].email){
if(req.body.userpass == users[i].userpass){
req.session.user = users[i];
return res.redirect("/home");
}
}
}
return res.redirect("/");
});
app.get("/logout",(req,res)=>{
req.session.destroy();
return res.send("/");
});
function checkAuthenticated(req, res, next) {
if (req.isAuthenticated()) {
return next()
}
res.redirect('/login')
}
function checkNotAuthenticated(req, res, next) {
if (req.isAuthenticated()) {
return res.redirect('/')
}
next()
}
app.listen(3000,()=>{
console.log("Server started...");
})
и каков наилучший способ хранения сеансов?