2013-02-12 28 views
12

nie mogę utrzymać sesji surfowania za pośrednictwem strony internetowej po zalogowaniu.Phantomjs i sesje

zrobić z powodzeniem może zalogować się na stronie (i określić, że cokolwiek strona jest po zalogowaniu użytkownik zostanie przekierowany do strona domowa), ale potem muszę przejść na inną stronę. Najpierw próbowałem z page.open(), a następnie zmieniając właściwość window.href window.evaluate, ale w obu przypadkach niestety nie jestem już zalogowany. Sprawdziłem stan logowania, wyświetlając tylko stronę na każdym zdarzeniu ładowania strony z przyrostowymi nazwami png (1.png, 2.png, itp.). Próbowałem również z --cookies-file = cookie.txt param, ale to nie pomogło.

Moje pytania są następujące: Jaki jest najlepszy sposób na "przeniesienie" stron witryny za pomocą phantomjs? Czy istnieje szczególny sposób obsługi sesji w tych przypadkach (może wysyłanie plików cookie ręcznie na każdym .open(), po prostu mówiąc)?

Dzięki za pomoc.

+0

Mam również ten sam problem. Próbowałem również parametru --cookies-file, widzę, że akcja logowania została wykonana poprawnie, ale kiedy przekierowuje na następną stronę, użytkownik nie był zalogowany. Zdecydowanie problem z sesją. czekamy na rozwiązanie. –

+0

Czy znalazłeś rozwiązanie tego problemu? Nadal boryka się z problemami i nie może znaleźć niczego, co pozwoliłoby uniknąć utraty bezpieczeństwa danych. – CinetiK

Odpowiedz

7

Sesje wymagają plików cookie. Musisz dodać dodatkowy argument w phantomjs.

--cookies-file=/path/to/cookies.txt 

Sprawdzić numer here, aby uzyskać więcej informacji.

Edit: Czy Twój cookies.txt zawiera coś?

+0

Tak, ale nadal nie mogę się zalogować. Próbowałem również usunąć stary plik cookie.txt, uruchamiając ponownie skrypt i sprawdzając, czy dane cookie są poprawnie napisane i wydaje się. – razorxan

+0

@razorxan, więc Twój problem wydaje się być rozwiązany? jeśli tak, proszę zaznacz powyższe pytanie jako poprawne .. abyśmy nie zostawili tego otwartego – abbood

+2

@abbood nie, jego problem nie został rozwiązany. Dane cookie są zapisywane poprawnie, ale nadal traci on swoją sesję logowania (tak jak ja teraz ...). – alumi

7

Wystąpiły problemy z podejściem do plików cookie. Plik zostałby zapisany i mogłem zobaczyć w pliku "informacje o plikach cookie", ale przyszłe żądania byłyby interpretowane jako nieuwierzytelnione. Jako ostatni wysiłek po prostu wziąłem tablicę page.cookies, serializowałem ją do JSON i zapisałem w pliku. Mój następny skrypt otworzyłby plik, przekształcił go na zmienną i ustawił plik page.cookies na zmienną. Rzeczywiście to zadziałało! Po prostu myślałem, że to przekażę.

+1

Jest to znany problem: najwyraźniej: https://github.com/ariya/phantomjs/issues/12277 i http: // stackoverflow.com/a/24184040/308421 – liorda

+0

Oto powód, aby to zrobić (chociaż opcja -cookie-plik wydaje się działać dla ciasteczek niesesyjnych): [https://gist.github.com/jarnix/8d6e279d7571da7fe3227f1e103f5562 ] (https://gist.github.com/jarnix/8d6e279d7571da7fe3227f1e103f5562) –