所以我在我的主域中有一个子域的框架页面,并且这个子域页面需要用户登录并具有会员资格才能访问。
基本上我需要会话变量和cookie被传递到子域,以便iframe加载。
cookie有一个domain
属性,它指定它们将从客户端发送到哪些域。例如,在PHP的setcookie
函数中,第5个参数接受一个$domain
字符串来在cookie中设置。默认情况下,它为空,这意味着当客户端接收到请求时,它将使用请求来自的域。
cookie可用的域。将域名设置为"www.example.com"将使cookie在www子域名和更高的子域名中可用。可用于较低域(如"example.com")的cookie将可用于较高的子域(如"www.example.com")。仍然实现已弃用的RFC 2109的旧浏览器可能需要一个引信。匹配所有子域。
所以如果你设置你的cookie到你的主域,客户端UA将不会有问题,使它可用到你的子域。
现在,iframe有点棘手。例如,Internet Explorer由于其不同的隐私政策规则可以对iframe进行不同的处理,并阻止来自iframe的所有cookie。有关更多细节,请参阅此问题。然而,Nginx真的不应该在这一切中扮演被动的角色。