Nowsze wersje Laravel (poprawnie) używają POST do wylogowania się z sesji. Rozumowanie tego jest takie, że GET/HEAD powinien być używany tylko do działań pasywnych, aby być zgodnym z HTTP.Jak wylogować się z wygasłej sesji w Laravel 5.x?
wpis jest z tokena CSRF chroni również złośliwych użytkowników/witryn z zalogowaniu cię z sesji: https://security.stackexchange.com/questions/62769/must-login-and-logout-action-have-csrf-protection
Jednak jeśli sesja już upłynął limit czasu, a użytkownik kliknie wylogowania (która wyzwala POST do trasy wylogowania) otrzymano błąd niedopasowania tokena. Ma to sens - token nie pasuje, ponieważ sesja wygasła.
Mogę po prostu złapać ten szczególny wyjątek TokenMismatchException na podstawie zmiennych żądania, a jeśli tak, kontynuuj je na swojej wesołej drodze (do wylogowanej ścieżki przekierowania, powiedz "dom" lub "/"). Tak:
public function render($request, Exception $e)
{
if ($e instanceof TokenMismatchException && $request->getRequestUri() === '/logout') {
return redirect('/');
}
return parent::render($request, $e);
}
Moje pytanie: jeśli robię powyższego, co jest punktem tokena w pierwszej kolejności? A jak wylogować użytkownika, gdy jego sesja wygasła, przy zachowaniu zamierzonych rezultatów używania wylogowania POST z tokenem CSRF?
W przypadku konieczności ochrony wylogowania: http://security.stackexchange.com/questions/62769/must-login-and-logout-action-have-csrf-protection/62797 Aby odpowiedzieć na swoje pytanie, proszę przekazać mi informacje, jaki mechanizm ogranicza czas sesji? – Mkay1
@ Mkay1 zakłada dowolny limit czasu (limit czasu sesji, sesja zniszczona, itp.). Podany link jest taki sam w moim pytaniu – Chris