Экспресс-сессия не может сохранить данные - PullRequest
0 голосов
/ 06 июня 2019

Я пытался использовать экспресс-сессию для хранения некоторых данных.Это все мои настройки (это то же самое, что и здесь ):

var express = require('express');
var session = require('express-session')
const bodyParser = require('body-parser');
var app = express();
var engines = require('consolidate');
//app.engine('html', engines.mustache);
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.static(__dirname + '/public'));


app.set('trust proxy', 1) // trust first proxy
app.use(session({
    secret: 'keyboard cat',
    resave: true,
    saveUninitialized: true,
    cookie: { secure: true }
}))

app.use(express.urlencoded({
    extended: true
}));

И здесь у меня есть соответствующее промежуточное ПО:

app.post('/dolog', function (req, res) {
    if (!req.body.nick || !req.body.password) {
        res.redirect('failedLogin')
    } else {
        let isValid: Boolean = validLogin(req.body.nick, req.body.password);
        console.log('isValid:', isValid)
        if (!isValid) {
            res.redirect('failedLogin')
        } else {
            req.session.token = newToken(req.body.nick)
            console.log('session:', req.session)
            res.redirect('account')
        }
    }
})

app.get('/account', function (req, res) {
    console.log(req.session)
    ...
});

В посте я установил токензначение, и после перенаправления на учетную запись я хочу прочитать его обратно, но его там нет ...

Когда я регистрирую сеанс в POST, я получаю:

session: Session {
    cookie:
    {
        path: '/',
        _expires: null,
        originalMaxAge: null,
        httpOnly: true,
        secure: true
    },
    token: 'eeUPRdzHAiIZRIqqAa5uu2Th19EQOM7i5fnKNDJZ'
}

И в GET:

Session {
    cookie:
    {
        path: '/',
        _expires: null,
        originalMaxAge: null,
        httpOnly: true,
        secure: true
    }
}

Может кто-нибудь объяснить, почему?

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