我创建了一个强制门户,要求用户通过 Facebook 和 Twitter 进行身份验证。
当用户连接到热点时,它会生成 Captive Network Assistant(Captive 门户窗口)。
到目前为止一切正常,CSS、HTML、JS 和 PHP 加载正常,没有任何问题。
当用户通过 Twitter 进行身份验证时,他们会被重定向到 api.twitter.com 并且再次,这里没有问题,所有 CSS 等都可以完美加载。
但是,当用户单击 Facebook 时,它会加载如下所示,看起来样式表由于某种原因被阻止。
我尝试将所有关联的 URLS 添加到围墙花园:
FirewallRule allow tcp to facebook.com
FirewallRule allow tcp to fbcdn.net
FirewallRule allow tcp to akamaihd.net
FirewallRule allow tcp to crl3.digicert.com
FirewallRule allow tcp to crl4.digicert.com
FirewallRule allow tcp to ocsp.digicert.com
FirewallRule allow tcp to cacerts.digicert.com
FirewallRule allow tcp to digicert.com
FirewallRule allow tcp to fbsbx.com
FirewallRule allow tcp to static.xx.fbcdn.net
FirewallRule allow tcp to fbstatic-a.akamaihd.net
在这一点上,我只是添加了任何我能找到的与 FB 相关的东西,不管它是多么的徒劳无功
FirewallRule allow tcp to fbcdn-profile-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-a-a.akamaihd.net
FirewallRule allow tcp to fbcdn-creative-a.akamaihd.net
FirewallRule allow tcp to fbexternal-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-i-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-j-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-k-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-l-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-m-a.akamaihd.net
FirewallRule allow tcp to fbcdn-sphotos-n-a.akamaihd.net
FirewallRule allow tcp to scontent-a-lhr.xx.fbcdn.net
FirewallRule allow tcp to scontent-b-lhr.xx.fbcdn.net
FirewallRule allow tcp to fbcdn-sphotos-h-a.akamaihd.net
FirewallRule allow tcp to facebook.net
此问题似乎仅与 OS X 隔离,当单击任何移动或 Windows 笔记本电脑上的 FB 链接时,没有问题并且可以按预期工作。
当关闭 CNA 窗口并在 Web 浏览器(Firefox 或 Safari)中打开 Captive Portal 时,它会毫无问题地加载。
因此,由此看来,它似乎与 OS X CNA 相关联。是否有人对导致此问题的原因、解决方案或解决方法有任何想法?
我不想完全停止使用 CNA。