簡體   English   中英

防止 Back History 中間件不工作

[英]Prevent Back History middleware not working

我制作了一個名為RevalidateBackHistory.php 的防止回溯歷史中間件,注冊到 kernel.php'revalidate' 這個中間件在管理儀表板上完美運行,但是當我注銷時,它不起作用,用戶可以 go 返回儀表板。 我使用Route::group在整個應用程序上實現了這個中間件,也嘗試在特定路由上實現它,但沒有成功。 提前致謝。

這是中間件的代碼:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class RevalidateBackHistory
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
        $response = $next($request);
        $response->headers->set('Cache-Control','no-cache, no-store, max-age=0, must-revalidate');
        $response->headers->set('Cache-Control: post-check=0, pre-check=0', false);
        $response->headers->set('Pragma','no-cache');
        $response->headers->set('Expires','Sun, 02 Jan 1990 00:00:00 GMT');
        return $response;
    }
}

這是我的 web.php(路線):

<?php

use App\Http\Controllers\AdminController;
use App\Http\Controllers\ProductController;
use App\Http\Controllers\StoreController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\ReviewController;
use App\Http\Controllers\CartController;
use App\Http\Controllers\PayPalController;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::group(['middleware' => 'revalidate'], function() {

    //Store Routes
    Route::get('store',[StoreController::class, 'index'])->name('store');
    Route::get('/', function () {return redirect()->route('store');});

    //Single Product Page
    Route::get('show/{id?}',[StoreController::class, 'show'])->name('show');

    //Cart Functionalities
    Route::get('cart',[CartController::class, 'cart'])->name('cart');
    Route::post('add-to-cart', [CartController::class, 'addToCart'])->name('add-to-cart');
    Route::get('load-cart-data',[CartController::class, 'cartLoadAjax'])->name('load-cart-data');
    Route::post('update-cart-data',[CartController::class, 'updateCartData'])->name('update-cart-data');

    //Redirect if already authenticated middleware(Admin)
    Route::group(['middleware' => ['auth:web']], function() {

        //Checkout
        Route::get('checkout',[StoreController::class, 'checkOut'])->name('checkout');

        //Create Comment
        Route::post('comments/{id}',[ReviewController::class, 'store'])->name('comment');

        //Paypal 
        Route::post('payment', [PayPalController::class, 'payment'])->name('payment');
        Route::get('payment.success', [PayPalController::class, 'success'])->name('payment.success');

        //getDetails
        Route::get('get.details', [UserController::class, 'getDetails'])->name('get.details');

    });

    //Redirect if already authenticated middleware(Admin)
    Route::group(['middleware' => ['guest:web']], function() {

      //User Login and Registration
      Route::get('UserLogin',[UserController::class, 'UserLogin'])->name('UserLogin');
      Route::post('user.login',[UserController::class, 'UserCustomLogin'])->name('user.login');

      Route::post('UserRegis',[UserController::class, 'customUserRegistration'])->name('UserRegis');  

    });





    Route::group(['middleware' => ['guest:admin']], function() {

      //Admin Register
      Route::get('admin_register',[AdminController::class, 'registration'])->name('GetSignUp');
      Route::post('post_Register',[AdminController::class, 'customRegistration'])->name('aSignUp');  



      //Admin Login
      Route::get('admin_login',[AdminController::class, 'AdminGetLogin'])->name('login');
      Route::post('post_login',[AdminController::class, 'CustomLogin'])->name('aAuth');

    });



        Route::group(['middleware' => ['auth:admin']], function() {
          // define your route, route groups here

              //Dashboard
              Route::get('dashboard',[AdminController::class, 'dashboard'])->name('dashboard');
              

              //SignOut
              Route::get('admin_signout',[AdminController::class, 'signOut'])->name('signout');

              //Products
              Route::get('add_product',[ProductController::class, 'create'])->name('add_product');
              Route::post('save_product',[ProductController::class, 'createProduct'])->name('save_product');
              Route::get('view_products',[ProductController::class, 'viewProducts'])->name('view_products');

            
              //New Edit 
              Route::get('editNew/{id?}',[ProductController::class, 'editNew'])->name('editNew');

              //Update Product Data
              Route::post('update_product/{id}',[ProductController::class, 'update'])->name('update_product');

              //Delete Product
              Route::delete('/delete_product/{id}',[ProductController::class, 'destroy'])->name('delete_product');

              //Search Product
              Route::get('search',[ProductController::class, 'search'])->name('search');

      });
});

  

您可以嘗試將其設置為 App\Http\Kernel.php 中的全局中間件嗎

應用程序的全局 HTTP 中間件在對您的應用程序的每個請求期間運行。

希望有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM