【问题标题】:How to access client cookie (with session ID) created by node.js Express?如何访问由 node.js Express 创建的客户端 cookie(带有会话 ID)?
【发布时间】:2012-05-15 12:44:33
【问题描述】:

我以为我了解 Cookies 是如何工作的,但我想我不明白,因为我坚持以下几点:

我无法使用 document.cookie 显示 cookie,使用 alert(document.cookie) 进行测试;在我的代码中。

我正在使用 node 并在我的服务器上运行以下代码 sn-p (其他一切正常并使用 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'));
    });

在我的服务器上,当我点击 index.ejs 时,我看到一个 cookie 正在发送。 Chrome 还会在 index.ejs 的标头中显示正在发送的 cookie。但是,当我在 index.ejs 页面中添加 alert(document.cookie) 时,警报为空白。我做错了什么?

谢谢

【问题讨论】:

    标签: javascript node.js cookies express


    【解决方案1】:

    连接会话 cookie 默认为 Chrome 尊重的 httpOnly,即客户端 javascript 无法访问 cookie。

    客户端 javascript 不需要读取会话 cookie,除非是恶意 XSS 脚本,所以一切都很好。

    如果您想覆盖它,请尝试:

    app.use(express.session({ 
      store: sessionStore, 
      secret: 'BBQ12345AHHH',
      cookie: {httpOnly: false},
      key: 'cookie.sid' }          
    ))
    

    来源http://www.senchalabs.org/connect/session.html#session

    【讨论】:

    • 那么 Node 以后如何在应用程序中访问已签名的 cookie?
    • @vsync 在谷歌上的第一个结果是“签名的 cookie”req.signedCookies['name']
    • 10 倍。最好所有信息都在这里,在一个地方,而不是邪恶的谷歌 :) 但是当我读取签名的加密 cookie 时,服务器是否知道如何使用相同的密钥对其进行解密?
    【解决方案2】:

    你调用 cookie 对吗?我在学习时发现此页面很有帮助:

    http://www.quirksmode.org/js/cookies.html

    【讨论】:

      猜你喜欢
      • 2013-06-20
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多