Я пытался использовать экспресс-сессию для хранения некоторых данных.Это все мои настройки (это то же самое, что и здесь ):
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
}
}
Может кто-нибудь объяснить, почему?