프로젝트에서 express-sessions를 사용하고 있으며 세션 저장과 함께 사용하기 위해 브라우저에 쿠키를 생성하는 시점을 이해하기가 어려워요.express-sessions를 사용할 때 쿠키는 언제 만들어 집니까?
내 프로젝트에서 내 홈페이지 ("/")를 요청하면 쿠키가 생성되지 않지만 다른 페이지를 요청하면 쿠키가 만들어집니다. 홈페이지 (예 : '/ user/signup')를 벗어난 상태에서 브라우저에서 쿠키를 삭제 한 다음 다시 홈페이지로 이동하면 세션 저장을위한 쿠키가 생성되지 않습니다.
내 문제는 홈 페이지 이외의 다른 모든 요청에 대해 세션 쿠키를 만드는 이유를 이해하는 것입니다.
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(validator());
app.use(cookieParser());
app.use(session({
secret: 'mysupersecret',
resave: false,
saveUninitialized: false,
store: new mongoStore({
mongooseConnection: mongoose.connection
}),
cookie: {maxAge: 180 * 60 *1000}
}));
app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
app.use('/user', userRoutes)
app.use('/', indexRoutes);
router.get('/', function(req, res, next) {
Product.find(function(err, docs){
if(err){
console.log(err);
} else {
var prodRows = [];
var rowLength = 3;
for(var i = 0; i < docs.length; i += rowLength){
prodRows.push(docs.slice(i, i + rowLength))
};
res.render('shop/index', { title: 'Shopping Cart', prods: prodRows});
}
});
});
router.get('/user/signin', function(req, res, next){
console.log('Session2: ', req.session);
console.log('Cookies2: ', req.cookies);
var messages = req.flash('error');
console.log('Session3: ', req.session);
console.log('Cookies3: ', req.cookies);
res.render('user/signin', { csrfToken: req.csrfToken(), messages: messages, hasErrors: messages.length > 0});
});
어떤 도움을 주시면 감사하겠습니다.
이 경우 코드에 https://www.npmjs.com/package/connect-mongo 패키지를 사용하십시오. 세션을 MongoDB에 저장했습니다. – Mikhail
왜 Hompage 용 세션 쿠키가 생성되지 않습니까? – 2K01B5
브라우저 제한 쿠키의 최대 크기는 도메인 당 4KB입니다. – Mikhail