express и готовить ie -сессия для производства? - PullRequest
1 голос
/ 07 марта 2020

Я нахожусь на ранней стадии приложения и пытаюсь понять, каков наилучший способ сделать безопасные сессии, обычно я 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...");
})

и каков наилучший способ хранения сеансов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...