got*_*ops 9 javascript cookies node.js express
我以为我理解了Cookie是如何工作的,但我想不会因为我被困在以下方面:
我无法使用document.cookie显示cookie,使用alert进行测试(document.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'));
});
Run Code Online (Sandbox Code Playgroud)
在我的服务器上,当我点击index.ejs时,我看到一个cookie被发送.Chrome还会在index.ejs的标头中显示一个Cookie.但是,当我在index.ejs页面中添加alert(document.cookie)时,警报为空.我究竟做错了什么?
谢谢
Connect会话cookie默认为httpOnlyChrome所尊重的,IE是客户端javascript无法访问的.
客户端javascript不需要读取会话cookie,除非是恶意的XSS脚本,所以这一切都很好.
如果你想覆盖它,请尝试:
app.use(express.session({
store: sessionStore,
secret: 'BBQ12345AHHH',
cookie: {httpOnly: false},
key: 'cookie.sid' }
))
Run Code Online (Sandbox Code Playgroud)
来源http://www.senchalabs.org/connect/session.html#session