Mam stronę Laravel 5.0, w której frontend JS wykonuje wiele wywołań ajaxowych do kodu Laravel backendu. Zauważyłem, że na każde żądanie ajax otrzymuję nową wartość "cookie laravel_session" w odpowiedzi za każdym razem. Zgaduję, że jest to jakiś mechanizm bezpieczeństwa, który chroni przed przechwytywaniem sesji.Identyfikator sesji Laravel zmienia się z każdym żądaniem
Jednak myślę, że to powoduje problem z moją witryną, ponieważ moje wywołania ajaxowe zdarzają się często równolegle, a nie sekwencyjnie. Nie czekam na odpowiedź przed odpaleniem następnego połączenia.
Rozważ ten scenariusz:
. Połączenie Ajax 1 - żądanie - ciasteczko laravel_session = '1234'
. Wywołanie Ajax 1 - odpowiedź - ciasteczko laravel_session = '2345'
. Połączenie Ajax 2 - request-laravel_session cookie = '2345'
. Połączenie Ajax 3 - request-laravel_session cookie = '2345'
. Połączenie Ajax 2 - odpowiedź - ciasteczko laravel_session = '3456'
. Połączenie Ajax 3 - odpowiedź - sesja już nieaktualna
Czy jest jakiś sposób obejścia tego?
I należy również pamiętać, że sesje są wygasnąć w config/session.php jak 'życia' => 120,
To nie jest mechanizm bezpieczeństwa, i masz rację - to nie powinno się dziać. Sprawdź ustawienia sesji w 'config/session.php' i sprawdź, czy ścieżka cookie jest poprawna. Domyślnie sesje oparte na plikach powinny być przechowywane w 'storage/framework/sessions /' - jeśli ten folder jest pusty, być może twoja instalacja nie może poprawnie napisać do tego folderu. – samlev
moje ustawienia w config/session.php wyglądają ok do mnie "files" => storage_path(). '/ Framework/sessions', i widzę pliki tworzone w storage/framework/sessions/ – MakkyNZ
dla mnie to jest ' files '=> storage_path (' framework/sessions ') – mroesler