РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinSpHsCl 77 of 112 menu
◀ ▶

Очистка истории в Inertia

Пусть человек просмотрел личный кабинет с заказами, затем вышел из аккаунта и оказался на главной. Кнопка «назад» в браузере по-прежнему может показать экран кабинета из снимка истории, хотя сессия на сервере уже закрыта.

Метод clearHistory на стороне Laravel сообщает клиенту Inertia, что после ответа нужно сменить ключ шифрования в хранилище сессии браузера. Старые записи истории перестают расшифровываться, и при попытке «назад» клиент запрашивает страницу заново у сервера вместо мёртвого снимка.

Давайте опишем выход и вызовем очистку перед ответом:

<?php use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::post('/logout', function () { Auth::logout(); Inertia::clearHistory(); return Inertia::render('Home'); }); ?>

Давайте на экране кабинета отправим форму выхода на этот адрес:

<script setup> import { Form } from '@inertiajs/vue3' </script> <template> <h1>Account</h1> <Form action="/logout" method="post"> <button type="submit">Log out</button> </Form> </template>

После выхода работника Nina с экрана смен сделайте так, чтобы «назад» не показывал расписание без нового запроса к серверу.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить