【发布时间】:2023-03-06 12:31:01
【问题描述】:
所以我在我的主域中有一个子域的 iframed 页面,而这个子域页面需要用户登录并具有访问权限。
基本上,我需要将会话变量和 cookie 传递给子域,以便 iframe 加载。
如何在 Nginx 中实现这一点?
【问题讨论】:
标签: php nginx cross-domain
所以我在我的主域中有一个子域的 iframed 页面,而这个子域页面需要用户登录并具有访问权限。
基本上,我需要将会话变量和 cookie 传递给子域,以便 iframe 加载。
如何在 Nginx 中实现这一点?
【问题讨论】:
标签: php nginx cross-domain
Cookie 有一个domain 属性,它指定它们将从客户端发送到哪些域。例如,在 PHP 的 setcookie 函数中,第 5 个参数接受要在 cookie 中设置的 $domain 字符串。默认情况下它是空白的,这意味着它会在客户端收到请求时使用请求来自的域。
cookie 可用的域。将域设置为“www.example.com”将使 cookie 在 www 子域和更高的子域中可用。可用于较低域的 Cookie,例如“example.com”,将可用于较高的子域,例如“www.example.com”。仍在实施已弃用的 » RFC 2109 的旧浏览器可能需要前导 .匹配所有子域。
因此,如果您将 cookie 设置为您的主域,客户端 UA 将不会有任何问题,使其可用于您的子域。
不过,现在 iframe 有点棘手。例如,由于其不同的隐私政策规则,Internet Explorer 可以区别对待 iframe,并阻止 iframe 中的所有 cookie。有关详细信息,请参阅this question。然而,Nginx 真的不应该在这一切中扮演任何被动角色。
【讨论】: