Приложение Laravel, замена аккаунта при нажатии на браузер - PullRequest
0 голосов
/ 14 сентября 2018

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

Проблема, которую я получаю, заключается в том, что 2 пользователя используют один компьютер. В какой-то момент первый пользователь получает кешированную страницу 1 (после отправки формы он перенаправляется на страницу 1). Теперь я выхожу и захожу под вторым пользователем. Затем я перехожу на страницу 1, чтобы просмотреть отправленную форму, но затем нажимаю кнопку «Назад» в браузере. Это приводит к странице 1, НО с учетной записью 1 на странице 1, а не с учетной записью 2 на странице 1.

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

Единственное ли другое решение - иметь кнопку «Назад» внутри приложения на каждой странице и отключить кнопку «Назад» в браузерах?

Я также подумал об использовании промежуточной страницы между отправкой и страницей1 (поэтому теоретически не будет кэшировать страницу 1), но это необходимо делать в приложении при отправке любой формы. Это возможное решение?

У кого-нибудь еще есть какое-нибудь решение этой проблемы? У меня отключена кнопка «Назад», но я понимаю, что это неудобство для пользователей.

1 Ответ

0 голосов
/ 15 сентября 2018

Учитывая, что у вас есть запись данных сеанса внутри таблицы в базе данных, я думаю, что решение может быть, чтобы что-то подобное было внутри контроллера

<?php

public function login(Request $request) {
    //Process the $request data
    $user = //Get user with a model function
    if ( $user ) {
        Auth::login($user);
    }
}

public function logout() {
    Auth::logout();
    return redirect('/');
}
?>

В этом случае ваша таблица User должна иметь поля с данными сеанса пользователя. Если вам нравится использовать HTTP-сессии, добавьте Session::flush(); к функции контроллера logout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...