Я использую angular (frontend) и node.js + express (backend).Когда я запускаю свое приложение на localhost:3000
(порт, на котором работает экспресс-приложение), все происходит правильно, и я замечаю, что идентификатор сеанса запроса остается прежним, даже если я обновляю страницу.Однако, когда я хочу работать в режиме разработки на localhost:4200
, сессия больше не является постоянной, и каждый раз, когда я обновляю страницу, у меня отображается новый идентификатор сессии.
app.js
const bodyParser = require('body-parser'),
cookieParser = require('cookie-parser'),
cors = require('cors'),
express = require('express'),
session = require('express-session');
const app = express();
app.use(cors());
const port = process.env.PORT || '3000';
app.set('port', port);
const server = http.createServer(app);
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
next();
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(session({
secret: 'MY-KEY',
resave: false,
saveUninitialized: false,
store: new MongoStore({ mongooseConnection: mongoose.connection })
}));
app.use(passport.initialize());
app.use(passport.session());
server.listen(port, () => console.log(`API running on localhost:${port}`));
Я также использую прокси в режиме разработки, как показано ниже:
proxy-conf.json
{
"/api/*": {
"target": "http://localhost:3000",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
}
}