简体   繁体   English

Laravel 5.3 - 在中间设置清除缓存不起作用

[英]Laravel 5.3 - set clear cache on middle not working

I want to prevent the user from clicking back the browsers button. 我想阻止用户点击浏览器按钮。 Whenever user logged in and click browser's back button the page redirect back to login which is wrong. 每当用户登录并单击浏览器的后退按钮时,页面将重定向回登录,这是错误的。 I create middleware and register it to the kernel and use it in my route as group but its not working. 我创建中间件并将其注册到内核并在我的路由中使用它作为组但它不起作用。 Here's the code 这是代码

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,
];

ROUTES ROUTES

<?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');
    });
});

After logging in when user clicks back button it redirects back on login page. 在用户单击后退按钮登录后,它会重定向回登录页面。 Logged out is fine. 退出是好的。 Any help? 有帮助吗? :( :(

You can define multiple middleware for one group : 您可以为一个组定义多个中间件:

Route::group(['middleware' => ['auth', 'cache.clear']], function() {

But by default Laravel redirects users to $redirectTo defined in your Auth controllers. 但默认情况下,Laravel会将用户重定向到您在Auth控制器中定义的$ redirectTo。 I don't understand why you are trying to avoid back click. 我不明白为什么你要避免后退点击。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM