Я хочу, чтобы пользователь не нажимал кнопку назад в браузере. Всякий раз, когда пользователь вошел в систему и нажал кнопку «Назад» браузера, страница перенаправила обратно на страницу входа, что неверно. Я создаю промежуточное программное обеспечение и регистрирую его в ядре и использую его в своем маршруте как группу, но он не работает. Вот код
MIDDLEWARE
<?php
namespace App\Http\Middleware;
use Closure;
class ClearCache
{
public function handle($request, Closure $next)
{
$response = $next($request);
$response->headers->set("Cache-Control", "no-cache,no-store, must-revalidate");
return $response;
}
}
KERNEL
protected $routeMiddleware = [
....
// CUSTOM MIDDLEWARE GOES HERE
'clear.cache' => \App\Http\Middleware\ClearCache::class,
];
МАРШРУТЫ
<?php
Route::group(['middleware' => 'guest'], function() {
Route::get('/', function () {
return view('welcome');
});
});
Auth::routes();
Route::group(['middleware' => 'auth'], function() {
Route::group(['middleware' => 'clear.cache'], function() {
Route::get('/home', 'HomeController@index');
});
});
После входа в систему, когда пользователь нажимает кнопку «Назад», он перенаправляется обратно на страницу входа. Выйдет нормально. Любая помощь? 🙁
Вы можете определить несколько промежуточных программ для одной группы:
Route::group(['middleware' => ['auth', 'cache.clear']], function() {
Но по умолчанию Laravel перенаправляет пользователей на $ redirectTo, определенный в ваших контроллерах Auth. Я не понимаю, почему вы пытаетесь избежать щелчка назад.
Других решений пока нет …