Как получить доступ к cookie клиента (ID сессии) создается узел.JS Express?
Я думал, что понял, как работают куки, но я думаю, нет, так как я застрял на следующем:
Я не могу отобразить файл cookie с документом.cookie, тестирование с предупреждением (документ.печенье); в моем коде.
Я играю с узлом и имею следующий фрагмент кода на моем сервере (все остальное работает и обслуживает страницы с Express):
var express = require('express')
, util = require('util')
, MemoryStore = express.session.MemoryStore
, app = express.createServer()
, sessionStore = new MemoryStore();
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.logger());
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.session({
store: sessionStore,
secret: 'BBQ12345AHHH',
key: 'cookie.sid' }));
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
на моем сервере я вижу, что cookie отправляется, когда я нажимаю индекс.EJS по. Chrome также показывает файл cookie в заголовок индекса.EJS по. Однако, когда я добавляю alert (документ.cookie) в индексе.страница ejs, предупреждение пустое. Что я делаю не так?
спасибо
2 ответов
cookies сеанса подключения по умолчанию httpOnly
который Chrome уважает, т. е. файлы cookie недоступны для javascript на стороне клиента.
файл cookie сеанса не должен считываться javascript на стороне клиента, если только это не вредоносные скрипты XSS, поэтому все хорошо.
Если вы хотите переопределить его, попробуйте:
app.use(express.session({
store: sessionStore,
secret: 'BBQ12345AHHH',
cookie: {httpOnly: false},
key: 'cookie.sid' }
))
источник http://www.senchalabs.org/connect/session.html#session