我有一个处理一些东西的node.js服务器,它位于端口:9000
上,我构建了一个身份验证中间件来限制某些路由。
我无法获取cookie,所以我怀疑是因为req
来自另一个地方:3000
。
我没有尝试获取cookie快速集,我试图从req
// using var req = http.IncomingMessage.prototype;
req.authenticated = function(callback) {
console.log(this.headers.cookie)
}
所以问题是如何设置,以便每当:3000
向我的node.js服务器:9000
发出请求时,cookie都会随标头一起发送?
答案 0 :(得分:3)
您有多种选择:
您可以将两个服务器放在反向代理(例如nginx)之后,并将来自同一权限的不同URL映射到不同的后端。
您可以使用mod_proxy(instructions)
您可以在主服务器的子域上托管您的节点服务器,并使用相同的端口,然后使用域通配符
您可以将auth令牌显式发送为客户端代码设置的HTTP头(您需要将原始身份验证令牌发送到可通过JS访问的客户端;谨防XSS攻击)
< / LI>您可以让主站点向Node.js服务器上的URL发送签名请求,以便根据其权限设置auth cookie(您需要在注销时执行相同操作,并防止CSRF,会话修复和其他攻击;了解SSO技术)