2015-04-01 10 views
6

Przykładem przeglądarka: IE 11: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv: 11.0) jak GeckoTokenMismatch tylko niektórych Przeglądarki - laravel 5 Fresh/Produkcja

Sesja rozpoczęła w wieku 22 lat: 46:56. Wypełnia formularz. Przesłanie formularza o 22:53:18, dostaje TokenMismatchException. Tak więc tylko 6 minut później.

sesja rozpoczęła:

Apr 02 22:46:56 production.INFO: Session {"start":1428040016,"id":"8040cc779df0330855f8fa30483af63557aaf9c4","token":"L3nU4ehseV5w1iXy86g18FsgnVs6sAcDNjTUZ5QV","ip":"74.XX","method":"GET","url":"https://sub.domain.com/place-st","ua":"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"} []

użytkownik przesyła formularz 6 minut później:

Apr 02 22:53:18 production.DEBUG: REQUEST SESSION token: 8L3pba9ALBVBcrvIPM5wnTl7bP0slSIrjCAkfWzh [] [] Apr 02 22:53:18 production.DEBUG: REQUEST INPUT _token: L3nU4ehseV5w1iXy86g18FsgnVs6sAcDNjTUZ5QV [] [] Apr 02 22:53:18 production.DEBUG: REQUEST HEADER X-CSRF-TOKEN: [] [] Apr 02 22:53:18 production.DEBUG: REQUEST HEADER X-XSRF-TOKEN: [] [] Apr 02 22:53:18 production.DEBUG: REQUEST URL: https://sub.domain.com/requests/post [] []

Server Vars:

Apr 02 22:53:18 production.DEBUG: array ( 'USER' => 'forge', 'HOME' => '/home/forge', 'FCGI_ROLE' => 'RESPONDER', 'APP_ENV' => 'production', 'QUERY_STRING' => '', 'REQUEST_METHOD' => 'POST', 'CONTENT_TYPE' => 'application/x-www-form-urlencoded', 'CONTENT_LENGTH' => '867', 'SCRIPT_FILENAME' => '/home/forge/doamin.com/public/index.php', 'SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => '/requests/post', 'DOCUMENT_URI' => '/index.php', 'DOCUMENT_ROOT' => '/home/forge/doamin.com/public', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'GATEWAY_INTERFACE' => 'CGI/1.1', 'SERVER_SOFTWARE' => 'nginx/1.6.2', 'REMOTE_ADDR' => '74.XX', 'REMOTE_PORT' => '56563', 'SERVER_ADDR' => '104.XX', 'SERVER_PORT' => '443', 'SERVER_NAME' => 'doamin.com', 'HTTPS' => 'on', 'REDIRECT_STATUS' => '200', 'HTTP_ACCEPT' => 'text/html, application/xhtml+xml, */*', 'HTTP_REFERER' => 'https://sub.domain.com/place-st', 'HTTP_ACCEPT_LANGUAGE' => 'en-US', 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko', 'HTTP_CONTENT_TYPE' => 'application/x-www-form-urlencoded', 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate', 'HTTP_HOST' => 'sub.domain.com', 'HTTP_CONTENT_LENGTH' => '867', 'HTTP_CONNECTION' => 'Keep-Alive', 'HTTP_CACHE_CONTROL' => 'no-cache', 'PHP_SELF' => '/index.php', 'REQUEST_TIME_FLOAT' => 1428040398.7879851, 'REQUEST_TIME' => 1428040398,) [] []

Sesja/Cookie

Apr 02 22:53:18 production.DEBUG: REQUEST PATH: requests/post [] [] Apr 02 22:53:18 production.DEBUG: COOKIE: array () [] [] Apr 02 22:53:18 production.DEBUG: SESSION: array ( '_token' => '8L3pba9ALBVBcrvIPM5wnTl7bP0slSIrjCAkfWzh',) [] []

HTTP Żądanie:

Apr 02 22:53:18 production.DEBUG: POST /requests/post HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Encoding: gzip, deflate Accept-Language: en-US Cache-Control: no-cache Connection: Keep-Alive Content-Length: 867 Content-Type: application/x-www-form-urlencoded Host: sub.domain.com Referer: https://sub.domain.com/place-st User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko _token=L3nU4ehseV5w1iXy86g18FsgnVs6sAcDNjTUZ5QV&var=value&var2=value2&etc... [] []

+0

to może poważny bug, może problem z grą gitthub laravel/laravel – dynamic

+0

@jhauraw czy byłeś w stanie sprawdzić moją odpowiedź? – motto

+0

Czy tak się stanie, jeśli prześlesz formularz w ciągu 1 minuty? Lub tylko 6 minut? A co z 5 minutami itp.? – Laurence

Odpowiedz

0

Najprawdopodobniej problem nie jest związany z przeglądarek. Uważam, że niektórzy ludzie czekają zbyt długo i sesja wygasa. Po przesłaniu formularza z zakończoną sesją następuje wyjątek TokenMismatchException.

Do debugowania można zapisać do logowania, gdy każda z sesji jest stworzony, aby zobaczyć, czy to miał być wygasł, można także grać z życia sesji w session.php

+0

Zaktualizowałem moje pytanie z lepszym przykładem. Sesja nie wygasła. –

0

To może być długa, ale strzał źródłem problemu może być tryb zgodności IE i różne sesje tych trybów za pomocą.

możesz spróbować z dodaniem tej linii na górze Get a pocztowych stron:

header("X-UA-Compatible: IE=Edge"); 
+0

Mamy już metatag X-UA na każdej stronie pobierania, według standardowego standardu UI Bootstrap. Mówisz, że powinniśmy dodać nagłówek PHP na żądanie POST? W już. '' Ponadto, Android 4.4 * z Chrome 41 jest o ten sam problem, więc IE nie jest jedyny. –

+0

@jhauraw czy mógłbyś udostępnić swój post i uzyskać widoki i kontrolerów? – motto

+0

@jhauraw istnieje szansa, że ​​posty są obsługiwane przed każdym wyjściem html. – motto

1

Brzmi dużo jak ten znany problem z laravel: https://github.com/laravel/framework/issues/8172

przyczyna nie jest jeszcze znany i trwa już od jakiegoś czasu. Jest w tym sporo inteligentnych ludzi, ale pozorna przypadkowość problemu utrudnia debugowanie.

Proponuję, abyś przekazał swoje informacje do tego biletu i pilnuj go, aby uzyskać więcej informacji. W szczególności potrzebujemy jak najwięcej informacji o konfiguracji serwera i konfiguracji aplikacji, abyśmy mogli spróbować zreplikować problem. Jak dotąd dokładna metoda replikacji nie jest znana, co sprawia, że ​​naprawa jest trudna.

+0

Tak, losowość jest poza frustrujące. Dostajemy 2-3 dziennie na obciążonym systemie. Opublikuję scenariusz na temat biletu asap. –