Если у меня есть следующее, сеансы сохраняются, и страница подсчитывает количество посещений.
app.set('trust proxy', true)
// The documentation specifies '1' instead of 'true'
app.use(session({
secret: 'my secret',
proxy: true,
resave: false,
saveUninitialized: true,
cookie: { secure: false }
}))
app.listen(3000, function(){
console.log("Server is connected!");
});
app.get("/login", (req, res) => {
if(req.session.page_views){
req.session.page_views++;
res.send("You visited this page " + req.session.page_views + " times");
} else {
req.session.page_views = 1;
res.send("Welcome to this page for the first time!");
}
});
Однако, когда я удаляю app.listen(3000, ...)
и вместо этого запускаю в localhost
с помощью команды firebase serve
в CLI, сеансы не сохраняются.
Я также пытался запустить в производственной среде через firebase deploy
, но, опять же, сеансы не сохраняются.
Я попробовал несколько вариантов на app.use(session({
, и я считаю, что решение может быть там.
Есть рекомендации?
UPDATE
const express = require('express');
const session = require('express-session');
const FirestoreStore = require('firestore-store')(session);
const bodyParser = require('body-parser');
app.use(cookieParser('My secret'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(session({
store: new FirestoreStore({
database: firebase.firestore()
}),
secret: 'My secret',
resave: true,
saveUninitialized: true,
cookie: {maxAge : 60000,
secure: false,
httpOnly: false }
}));