Более поздние версии Laravel (правильно) используют POST для выхода из сеанса. Причиной этого является то, что GET/HEAD следует использовать только для того, чтобы пассивные действия соответствовали требованиям HTTP.Как выйти из истекшего сеанса в Laravel 5.x?
POSTING с маркером CS также защищает вредоносные пользователь/сайты от входа вас из ваших сессий: https://security.stackexchange.com/questions/62769/must-login-and-logout-action-have-csrf-protection
Однако если сеанс уже истек, и пользователь нажимает кнопку выхода из системы (который запускает POST к маршруту выхода) получена ошибка несоответствия токенов. Это имеет смысл - токен не соответствует, потому что сеанс истек.
Я могу просто поймать это конкретное TokenMismatchException на основе переменных запроса, и если да, продолжайте их по-своему (до выведенного пути перенаправления, например «home» или «/»). Как это:
public function render($request, Exception $e)
{
if ($e instanceof TokenMismatchException && $request->getRequestUri() === '/logout') {
return redirect('/');
}
return parent::render($request, $e);
}
Мой вопрос: если я выше, чем смысл лексемы в первую очередь? И как вы выходите из системы, когда срок их сессии истек, сохраняя при этом ожидаемые результаты использования выхода POST с токеном CSRF?
В случае необходимости защиты от выхода: http://security.stackexchange.com/questions/62769/must-login-and-logout-action-have-csrf-protection/62797 Чтобы ответить на ваш вопрос, пожалуйста дайте мне информацию, какой механизм тратит время на вашу сессию? – Mkay1
@ Mkay1 предполагает любой тайм-аут (тайм-аут сеанса, сеанс разрушен и т. Д.). Ссылка, которую вы указали, так же связана с моим вопросом – Chris