<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

/**
 * Middleware untuk mencegah browser menampilkan halaman yang sudah dilindungi
 * setelah user melakukan logout (mencegah tombol Back di browser).
 *
 * Cara kerja: Menambahkan HTTP headers Cache-Control yang memerintahkan
 * browser dan proxy untuk TIDAK menyimpan halaman di cache.
 */
class PreventBackHistory
{
    /**
     * Handle an incoming request.
     */
    public function handle(Request $request, Closure $next): Response
    {
        $response = $next($request);

        return $response->withHeaders([
            'Cache-Control' => 'no-cache, no-store, must-revalidate, private',
            'Pragma'        => 'no-cache',
            'Expires'       => '0',
        ]);
    }
}
