2016-12-08 5 views
0

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

Я знаю, что это не проблема безопасности, но все же я хочу, чтобы пользователь не обращался к предыдущей странице с помощью кнопки «Назад» браузера. Я использовал следующее решение, упомянутое в приведенном ниже URL-адресе, но оно по-прежнему не работает для меня. https://arjunphp.com/laravel-5-logout-and-prevent-back-button/

Я разрабатываю свое приложение с нуля на данный момент. Я просто использовал Laravel auth i.e (php artisan make: auth) и нашел эту проблему и застрял.

+1

Возможный дубликат [Как управлять кэшированием веб-страниц во всех браузерах?] (Http://stackoverflow.com/questions/49547/how-to-control-web- page-caching-all-browsers) –

ответ

0

Это не проблема. Когда пользователь нажимает «назад», браузер отображает предыдущую страницу как кешированную версию.

Вот ваши 3 варианта:

  1. Не беспокойтесь об этом. Если они вошли в систему, и они видели это раньше, они ожидали бы того же, если они вернутся. Однако, если они пытаются перемещаться в любом месте, где есть auth middleware, они все равно будут перенаправлены на страницу входа в систему.

  2. Когда они выходят из системы, перенаправляйте их на страницу входа.

  3. Перенаправить их обратно на предыдущий URL, это снова запустит auth middleware.

+0

Большое спасибо за подробное объяснение. – Abhishek

0

Как все говорили, это не проблема. Но даже если вы хотите предотвратить это, то вот что вы можете сделать. В функции выхода из системы вы, после того, как вы вызываете метод выхода из системы использовать что-то вроде этого,

return redirect(\URL::previous()); 

Я сделал это, и решить эту проблему. Пожалуйста, попробуйте это. Надеюсь, это поможет!

+0

спасибо за ответ, но это не сработает. для уточнения я добавляю также код функции выхода. публичный выход функции() { Auth :: guard ($ this-> getGuard()) -> logout(); return redirect (\ URL :: previous()); } – Abhishek

+0

Попробуйте использовать url() -> previous() вместо URL :: previous(). Затем посмотрите, работает ли он. Btw, ваша функция выхода выглядит нормально для меня – LearningNew

+0

не работает :(Моя функция выхода из системы находится под «vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php ". Я использовал команду php artisan make: auth для auth. – Abhishek

0

решение. Создайте промежуточное ПО.

Это должно выглядеть так.

<?php 

namespace App\Http\Middleware; 
use Closure; 

class HistoryBack 
{ 
/** 
* Handle an incoming request. 
* 
* @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
* @return mixed 
*/ 
public function handle($request, Closure $next) 
    { 
    $response = $next($request); 

    return $response->header('Cache-Control','nocache, no-store, max-age=0,  must-revalidate') 
    ->header('Pragma','no-cache') //HTTP 1.0 
    ->header('Expires','Sat, 01 Jan 1990 00:00:00 GMT'); // // Date in the past 


    } 
    } 

Ниже зарегистрировать промежуточное программное ядро ​​и использовать их на маршрутах приветов

извинить мой английский. Я использую переводчиков для понимания. Я только говорю и понимаю испанский и немного английский

+0

Спасибо за ответ, Но я уже пробовал это решение, как я уже упоминал в моем вопросе. – Abhishek

Смежные вопросы