Laravel ошибка сессии? - PullRequest
       20

Laravel ошибка сессии?

1 голос
/ 14 февраля 2020

Почему, несмотря на то, что я уже забыл сеанс, он по-прежнему печатает свое значение при нажатии кнопки назад? Это ошибка в laravel или я делаю что-то не так с моим кодом?

вот как я забываю сессию

session()->forget('user_role');
session()->forget('user_id');

, но даже если я это сделаю, это все равно печатает значение в консоли, когда я нажимаю кнопку возврата. Я уже пробовал другие методы, такие как метод pull и переназначение новых значений, но проблема все еще существует.

1 Ответ

0 голосов
/ 14 февраля 2020

session()->forget('user_role') работает хорошо. Тем не менее, вы по-прежнему можете просматривать / печатать, потому что браузер кэшировал эту страницу, и вместо того, чтобы выполнять сетевой вызов, запрос просто нагревает кэш.

Чтобы определить и отключить кэширование на некоторое время, откройте инструменты разработчика и отключите кэш, когда инструмент разработки открыт, и обновите страницу sh. После этого вы больше не сможете видеть эти данные, хранящиеся в ключе сеанса. Для справки: страница, которую вы видите, кэширована браузером. Это временное решение, если вы хотите проверить вымытое значение или нет. Однако, если вы не хотите, чтобы ваш пользователь имел такое поведение, вы можете попробовать указанные решения.

Для управления кэшем на основе браузера вам следует попробовать установить Cache-Control, Pragma и * 1010. * заголовок с ответом вашей страницы, как указано,

$contents = View::make('viewname');
return response($contents)-> withHeaders([
    'Cache-Control' => 'no-cache, no-store, must-revalidate',
    'Pragma' => 'no-cache',
    'Expires' => 0
]);

это позволит вам контролировать страницу, которая кэшируется в браузере. Установка Expires в 0 означает, что страница никогда не будет кэшироваться. Вы можете сослаться на Официальные документы MDN здесь.

Вам также следует попробовать отключить Laravel кэш блочного представления , если проблема все еще сохраняется или другое решение не помогает дать удовлетворительный результат.

...