Node.js与Angular.js的CORS会话cookie

时间:2013-04-23 01:01:49

标签: javascript node.js angularjs cors

我使用带有CORS和Angular.js的Node.js进行简单登录。

那是--- client.example.com正在进行 POST api.example.com/login成功时,会话cookie也会被client.example.com返回并且也可以获得访问权限获取服务,例如api.example.com/secret受会话Cookie保护。

制作不受会话cookie保护的GET请求不是问题。

  

最终,这里的目标也是authenticate a client side app to a REST api using CORS with a local stradegy ---即用户名&密码---即使上述惯例是不可能的。

我无法找到可以从任何地方学习的工作实践---指出我正确的方向?

加分: 展示一个有效的例子。

1 个答案:

答案 0 :(得分:2)

您的问题非常简单,浏览器不允许将在一个域中设置的Cookie发送到其他域 这是为了安全。如果你的会话cookie可以从任何域访问,那么任何站点都可以执行csrf(根据定义,你想要做的是csrf - 使用来自不同站点的一个站点的会话)。

虽然在应用它们时应该小心,但还是有很多方法。

  • 最简单的方法是使用Jsonp登录并发出跨域请求,jsonp基本上打破了cookie跨域策略。

  • 您可以在位于client.example.com的{​​{1}}页面中嵌入iFrame,父级和iFrame可以使用post message进行通信。

这两种方式都对csrf请求开放(就其性质而言),因此您应该特别注意允许api.example.com访问哪些信息。