Node.js cors req.headers.cookie?

时间:2015-09-01 02:10:05

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

我有一个处理一些东西的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都会随标头一起发送?

1 个答案:

答案 0 :(得分:3)

您有多种选择:

  • 您可以将两个服务器放在反向代理(例如nginx)之后,并将来自同一权限的不同URL映射到不同的后端。

  • 您可以使用mod_proxy(instructions

  • 将Apache(或您的主站点所在的任何服务器)配置为将某些URL转发到您的节点服务器
  • 您可以在主服务器的子域上托管您的节点服务器,并使用相同的端口,然后使用域通配符

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

    < / LI>
  • 您可以让主站点向Node.js服务器上的URL发送签名请求,以便根据其权限设置auth cookie(您需要在注销时执行相同操作,并防止CSRF,会话修复和其他攻击;了解SSO技术)