【问题标题】:Laravel 5.3 - set clear cache on middle not workingLaravel 5.3 - 在中间设置清除缓存不起作用
【发布时间】:2017-01-25 22:33:59
【问题描述】:

我想阻止用户点击浏览器按钮。每当用户登录并单击浏览器的后退按钮时,页面都会重定向回登录,这是错误的。我创建中间件并将其注册到内核并在我的路由中作为组使用它,但它不起作用。这是代码

中间件

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

内核

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

登录后,当用户单击返回按钮时,它会重定向回登录页面。注销就好了。有什么帮助吗? :(

【问题讨论】:

    标签: php authentication caching laravel-5.3


    【解决方案1】:

    您可以为一组定义多个中间件:

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

    但默认情况下,Laravel 会将用户重定向到您的 Auth 控制器中定义的 $redirectTo。我不明白你为什么要避免返回点击。

    【讨论】:

    • 想象一下,当您登录 facebook 并单击返回按钮时,它会将您重定向回 facebook 的登录页面?是不是很烦人?
    • 当你使用强制用户不登录的访客中间件时,Laravel 会自动重定向到 /home ($redirectsTo) 页面。
    猜你喜欢
    • 2021-03-04
    • 2017-05-22
    • 2016-07-24
    • 1970-01-01
    • 2020-04-05
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多