带会话/ cookie的CORS请求

时间:2016-01-23 20:06:38

标签: php session cookies cors

我的应用程序有一个PHP服务器和一个客户端(一个JS单页面应用程序)。它们是单独的项目,并部署在不同的域中。客户端使用服务器公开的RESTful API。

此应用程序将与处理身份验证的第三方集成,因此用户无法直接登录。我们的服务器只接收一个SSO令牌(经过适当签名,以便我们验证其完整性)。

我们还在传输层为所有请求强制执行安全性。

我想要做的是,一旦验证了SSO令牌,就启动我自己的会话,然后将用户重定向到客户端。我认为一旦创建了会话,浏览器就会在异步API调用中自动发送正确的Cookie标头,但似乎并非如此。

出于安全原因,这是否被故意禁用?

2 个答案:

答案 0 :(得分:5)

您必须将withCredentials设置为true,以便跨域XHR请求包含Cookie。

CORS响应还必须说Access-Control-Allow-Credentials: true(这就是widthCredentials默认为false的原因。)

答案 1 :(得分:2)

  

我认为一旦创建了会话,浏览器就会自动在异步API调用中发送正确的Cookie标头

不适用于启用CORS的资源的跨域请求(如果我正确理解您所描述的设置,这似乎就是这种情况。)

要实现这一点,您需要设置withCredentials标志。