Wojciech Małota Programista
Temat: Skąd youtube wie, że jestem zalogowany
Wiem co to jest cross-domain authentication i rozumiem jak to działa ale tego co zrobiło google nie rozumiem.1. Wchodzę na youtube.com - jestem niezalogowany
2. Wchodzę do Google Analytics - jestem niezalogowany, loguję się
3. Odświeżam youtube i nagle jestem zalogowany
Myślę sobie - jakiś trick z przekierowaniami, ciasteczkami itp. Zacząłem analizować temat.
1. Zdefiniowałem sobie w adblocku filtry, które blokują wywołania do domen googla, które pokazał mi Firebug. Zostawiłem tylko youtube.com i ytimg.com.
2. Najpierw wylogowałem się zewsząd
3. Przy nieaktywnych filtrach zalogowałem się do Google Analytics
4. Potem uaktywniłem filtry
5. Odświeżyłem youtuba... i co? Pokazał, że jestem zalogowany - bez odświeżeń, przekierowań, requestów do innych domen... niczego. Firebug nic nie pokazał.
Więc pytanie moje brzmi... jak on to robi? Ktoś próbował to rozkminić? Może natrafiliście na jakieś artykuły, które to opisują?
Do tej pory znalazłem tylko opis patentu, w którym jednak nie wdają się w szczegóły.
Usługi takie jak Google Analytics czy Gmail przekierowują na stronę w domenie account.google.com gdzie trzeba podać email i hasło. Klasyczne Cross-domain authentication. Logując się tam ustawiane jest cookie w domenie google.com.
Więc każda usługa musi odwołać się do tej domeny (ewentualnie subdomeny) żeby móc z tego skorzystać. Ale youtube tego nie robi. Nie odwołuje się a jednak loguje.
Kombinowałem nawet, że może dla potrzeb youtuba wystarcza jakaś prosta autoryzacja po stronie serwera nie wymagająca klasycznej sesji użytkownika (cookie sesji), oparta o IP, User agenta itp. Zmieniłem w locie User-agenta i dalej działa. Przyznam się, że nie mam już pomysłów.
Wujek Google mnie załatwił.