10

因此,我正在为酒店的公共热点构建访客 Internet 门户。这意味着门户通过网络访问网关(Nomadix)提供服务,该网关将所有传出流量重定向到门户页面。门户需要能够在浏览器上设置 cookie,以便访客在空闲超时后可以自动重新登录。

问题:
iOS4+ 和 OS X (10.7+) 设备具有称为 Captive Network Support 的功能。此功能会持续扫描 Wifi SSID,连接到它们,然后 curl http://www.apple.com/library/test/success.html以查看设备是否已连接到互联网。如果它没有得到成功响应,这些设备会弹出打开所谓的强制网络门户。此门户不是 Safari Mobile 的真实版本,您无法在此浏览器上保存 cookie。

我想对以下问题有权威的回答:

我可以使用客户端 javascript/markup 吗?

A) 在 Captive Network(弹出)浏览器中保存 cookie

B) 在没有将 apple.com 列入白名单的情况下,首先防止 Captive Network 浏览器弹出

4

3 回答 3

7

在 StackExchange 网络中,对于 sysadmin 的东西来说,这是一个错误的站点;你不妨试试ServerFault。根据我作为用户的经验,有一些 WiFi 门户可以在没有 cookie 的情况下管理重新身份验证;也许 ServerFault 可以帮助您找到此类。

也就是说,在 iOS 客户端开发方面有一种可能的解决方案:有一些CaptiveNetworkAPI允许第三方应用程序通知系统它承担了对特定 SSID 进行身份验证的责任,从而抑制 Web 工作表。这可能不是一个理想的解决方案,因为它需要您的用户安装应用程序,但它就在那里。

于 2012-08-28T04:57:35.713 回答
2

当检测到 iOS 设备时,您可以尝试在本地提供“ http://www.apple.com/library/test/success.html ”。这将使 CNA 不会弹出,然后用户可以通过移动 safari 登录,您可以在其中保存 cookie。

于 2013-02-06T10:38:00.880 回答
0

iOS 14有一个新的API可用于强制门户。顺便说一句,Android也支持它

于 2020-09-13T17:16:39.227 回答