javascript - cookies do Nodejs express não são adicionados
Estou a tentar criar uma aplicação Node.js e tenho de definir cookies. Este é algum do código:
var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.cookieParser());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
...
app.get('/', routes.indexGET);
app.post('/login', routes.loginPOST);
app.post('/number', routes.numberPOST);
...
res.cookie('number', req.body.number, {secure: true, httpOnly: true, maxAge: 1209600000});
console.log(req.cookies); //Returns {}
Porque é que o cookie não é adicionado? Eu sei que esta pergunta já foi feita aqui, mas não encontrei realmente nenhuma resposta adequada. Mesmo as respostas "corretas" (colocar o cookieParser antes do router) não foram úteis. Alguma sugestão? Obrigado.
Resposta #1
Não sei porquê, mas também não funciona para mim se a opção secure: true for usada em res.cookie('number', req.body.number, {secure: true, httpOnly: true, maxAge: 1209600000})
Não o uses e vai funcionar... Acho que usá-lo precisa de uma ligação TLS estabelecida....