Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memaksa HTTPS dalam Laravel 5 Menggunakan Middleware?

Bagaimana untuk Memaksa HTTPS dalam Laravel 5 Menggunakan Middleware?

DDD
Lepaskan: 2024-12-12 13:39:10
asal
910 orang telah melayarinya

How to Force HTTPS in Laravel 5 Using Middleware?

Laravel 5 HTTPS Redirection using Middleware

Dalam Laravel 5, anda boleh menguatkuasakan HTTPS untuk aplikasi anda menggunakan kelas Middleware. Begini cara anda boleh mencapai ini:

Kelas Peranti Tengah:

namespace MyApp\Http\Middleware;

use Closure;

class HttpsProtocol
{

    public function handle($request, Closure $next)
    {
        if (!$request->secure()) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);
    }
}
Salin selepas log masuk

Memohon Peranti Tengah:

Langkah seterusnya ialah untuk menggunakan Middleware ini pada semua permintaan yang masuk. Dalam fail Kernel.php, tambahkannya pada tatasusunan $middleware:

protected $middleware = [
    // Existing middleware...

    // Custom middleware
    'MyApp\Http\Middleware\HttpsProtocol',
];
Salin selepas log masuk

Pengesahan Persekitaran Pengeluaran:

Perisian tengah yang disediakan mengubah hala semua permintaan HTTP ke HTTPS, tetapi anda mungkin mahu mengehadkan tingkah laku ini kepada persekitaran pengeluaran sahaja. Anda boleh melakukan ini dengan menyemak persekitaran aplikasi:

if (!$request->secure() && App::environment() === 'production') {
    return redirect()->secure($request->getRequestUri());
}
Salin selepas log masuk

Pertimbangan Cloudflare:

Jika anda menggunakan Cloudflare, anda mungkin menghadapi gelung ubah hala kerana Cloudflare ke hadapan permintaan menggunakan HTTP. Untuk membetulkannya, tambahkan baris berikut pada Middleware anda:

$request->setTrustedProxies([$request->getClientIp()]);
Salin selepas log masuk

Kumpulan Web (Laravel v5.3 ):

Daripada menambahkannya pada $middleware tatasusunan, anda boleh menambahnya pada kumpulan web dalam Kernel.php:

protected $middlewareGroups = [
    'web' => [
        // ...

        // Custom middleware
        'MyApp\Http\Middleware\HttpsProtocol',
    ],
];
Salin selepas log masuk

Ingat bahawa kumpulan web digunakan untuk semua laluan secara lalai.

Nota Tambahan:

  • URL::forceScheme('https'); tidak mengubah hala tetapi hanya mengubah suai skema dalam pautan yang diberikan.
  • Laraskan semakan persekitaran mengikut persediaan pengehosan aplikasi anda.
  • Pastikan proksi yang dipercayai ditetapkan dengan betul untuk Cloudflare.

Atas ialah kandungan terperinci Bagaimana untuk Memaksa HTTPS dalam Laravel 5 Menggunakan Middleware?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan