Jak utworzyć stronę logowania WiFi popup

Kiedy idę do miejsca z hotspotem WiFi (takim jak chleb Panera) i nawiązuję połączenie z moim iPhonem, strona logowania do hotspotu pojawia się jako wyskakujące okienko. Oznacza to, że bez względu na to, jakiej aplikacji używam lub na jakiej stronie internetowej się znajduję, strona logowania przewija się od dołu, pyta o moje dane logowania, a następnie znika.

Ale w innych hotspotach nie dostaję strony logowania, dopóki nie przejdę do Safari i nie spróbuję załadować strony internetowej.

Czego szuka iPhone, który powoduje, że wyskakuje login strona w niektórych hotspotach, a nie w innych? Czy istnieje specjalny znacznik meta HTML? A może jest to związane ze sposobem realizacji przekierowania?

 28
Author: animuson, 2010-09-01

3 answers

Udało mi się znaleźć poprawny termin dla tego typu uwierzytelniania: "Captive portal". Wbijając Captive Portal iPhone do Google okazało się kilka szczegółów technicznych z tych stron: Jeden, dwa, Trzy .

Aby zaimplementować wyskakującą stronę logowania Wi-Fi:

  1. żądanie DNS dla www.apple.com nie może zawieść
  2. HTTP request for http://www.apple.com/library/test/success.html ze specjalnym agentem użytkownika CaptiveNetworkSupport/1.0 wispr nie może zwracać Success.

Mam nie testowałem tego, ale brzmi dobrze.


Komentarze poniżej wspominają, żeiOS 7 zachowuje się inaczej i może odpytywać więcej niż jeden serwer. Nie testowałem tego. Tak więc najłatwiej byłoby po prostu przekierować całą komunikację HTTP na stronę logowania i zablokować całą komunikację bez HTTP.

Microsoft's captive portal detection używa czegoś podobnego do zachowania pre-iOS7: jego wskaźnik stanu łączności sieciowej próbuje się skontaktować http://www.msftncsi.com Windows 8 i 8.1 również zawierają wsparcie dla WISPr .

Android ' s captive portal detection, od AOSP 4.0.1, próbuje kontakt http://clients3.google.com/generate_204 lub http://www.google.com/blank.html .

Aby być jak najbardziej uniwersalnym, będziesz chciał po prostu zablokować całą komunikację z wyjątkiem uwierzytelniania i dołączyć wsparcie WISPr na stronie logowania.

Powiedziałbym: "idź z prawidłowe uwierzytelnianie w sieci " - coś uniwersalnego, takiego jak PEAP+MSCHAPv2 - ale Windows sprawia, że konfiguracja go jest bardzo bolesna dla użytkowników. Nie wiem, kto pomyślał, że "użyj swoich danych uwierzytelniania systemu Windows" sprawia, że rozsądne domyślne na komputerach, które nie są częścią firmowej sieci domenowej, lub nawet dlaczego "Sprawdź ważność certyfikatu" jest rozsądne domyślne, jak większość sieci będzie nie rozważyć uzyskanie właściwego certyfikatu priorytetem.

 36
Author: Ivan Vučica,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:00:28

IOS 6 najwyraźniej naprawił WPA2 EAP, ponieważ nagle wyskakuje okno logowania.

Nasze firmy publiczne WiFi wymaga akceptacji warunków dotyczących monitoringu itp. Zawsze musiałem ręcznie otworzyć Safari na iPhonie lub iPadzie i nawigować gdzieś, przekierowuje do wewnętrznej strony akceptacji, a po kliknięciu przycisku Akceptuj pójdzie tam, gdzie pierwotnie zmierzałeś.

Dzisiaj zaktualizowałem do iOS 6 i byłem mile zaskoczony, widząc przesuwające się okno logowania z na dole i pozwól mi kliknąć przycisk Akceptuj bez otwierania Safari.

 1
Author: James Brickley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-19 19:16:09

Podejrzewam, że po wyświetleniu strony logowania Wi-Fi używa EAP . Jest to protokół Wi-Fi do uwierzytelniania. W przypadku, gdy trzeba przejść do strony internetowej, uwierzytelnianie będzie niestandardowym dostępem zaimplementowanym przez serwer (tj. na wyższym poziomie niż EAP).

 -4
Author: RichB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-01 08:15:56