如何将会话/ cookie从主域传递到Nginx中的子域?

时间:2015-10-23 00:35:51

标签: php nginx cross-domain

所以我在我的主域中有一个iframed的子域名页面,这个子域名页面要求用户登录并拥有要访问的成员资格。

基本上我需要将会话变量和cookie传递给子域,以便加载iframe。

如何在Nginx中实现这一目标?

1 个答案:

答案 0 :(得分:1)

Cookie具有domain属性,用于指定将从客户端发送到哪些域。例如,在PHP的setcookie函数中,第5个参数接受在cookie中设置的$domain字符串。默认情况下,它留空,这意味着当客户端收到请求时,它将使用请求来自的域。

  

Cookie可用的域。将域设置为“www.example.com”将使www子域和更高子域中的cookie可用。可用于较低域名的Cookie(例如“example.com”)可用于更高的子域名,例如“www.example.com”。仍旧实施已弃用的»RFC 2109的旧浏览器可能需要领先。匹配所有子域。

因此,如果您将cookie设置为主域,则客户端UA将无法将其提供给您的子域。

然而,现在,iframe并不那么棘手。例如,Internet Explorer可以根据不同的隐私策略规则对iframe进行不同的处理,并阻止来自iframe的所有Cookie。有关详细信息,请参阅this question。但是,在所有这些中,Nginx真的不应该扮演被动角色。