【问题标题】:Node.js cors req.headers.cookie?Node.js cors req.headers.cookie?
【发布时间】:2015-11-26 03:40:04
【问题描述】:

我有一个处理一些东西的 node.js 服务器,它位于端口 :9000,我构建了一个身份验证中间件来限制一些路由。

虽然我无法获取 cookie,所以我怀疑这是因为 req 来自另一个地方 :3000

我不是要获取 cookie 快递集,而是要从 req 获取客户端 PHP cookie

// using var req = http.IncomingMessage.prototype;
req.authenticated = function(callback) {
    console.log(this.headers.cookie)
}

所以问题是我该如何设置,以便每当:3000 向我的node.js 服务器:9000 发出请求时,cookie 会与标头一起发送?

【问题讨论】:

  • 浏览器为每个来源存储一组单独的 cookie。你不能(轻易)这样做。
  • 我有哪些选择?
  • 你应该把所有东西都放在一台服务器上。 (或了解 SSO 技术)
  • 真的吗?必须有办法。
  • 我们真的做不到,核心应用是建立在 symfony 上的,但是我建立了一个节点服务器来进行实时聊天。

标签: javascript node.js cookies express http-headers


【解决方案1】:

您有多种选择:

  • 您可以将两台服务器置于反向代理(如 nginx)之后,并将同一权限的不同 URL 映射到不同的后端。

  • 您可以配置 Apache(或托管您的主站点的任何服务器)以使用 mod_proxy (instructions) 将一些 URL 转发到您的节点服务器

  • 您可以将 Node 服务器托管在主服务器的子域上,并使用相同的端口,然后使用域通配符 cookie

  • 您可以将身份验证令牌显式发送为客户端代码设置的 HTTP 标头(您需要将原始身份验证令牌发送到可通过 JS 访问的客户端;谨防 XSS 攻击)

    1234563会话修复和其他攻击;了解 SSO 技术)

【讨论】:

    猜你喜欢
    • 2015-12-25
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 2016-04-15
    • 2018-06-29
    • 2014-11-10
    • 2021-04-24
    相关资源
    最近更新 更多