Rumah > rangka kerja php > Laravel > laravel melaksanakan akses merentas domain

laravel melaksanakan akses merentas domain

PHPz
Lepaskan: 2023-05-26 17:32:07
asal
2847 orang telah melayarinya

Dalam aplikasi web moden, Perkongsian Sumber Silang Asal (CORS) telah menjadi ciri penting. Apabila menggunakan rangka kerja Laravel untuk membangunkan aplikasi web, kami sering menghadapi situasi di mana akses merentas domain perlu dicapai. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Laravel untuk mencapai perkongsian sumber merentas domain supaya kami boleh membangunkan aplikasi web yang lebih fleksibel dan cekap.

Apakah perkongsian sumber merentas domain?

Dalam pembangunan web, perkongsian sumber silang (CORS) merujuk kepada penggunaan sumber tapak web lain dalam halaman satu tapak web. Contohnya, satu tapak web (tapak web A) menggunakan antara muka API tapak web lain (tapak web B) untuk mendapatkan data, dsb. Disebabkan Dasar Asal Sama penyemak imbas, penggunaan terus sumber daripada tapak web lain tidak dibenarkan. Dalam kes ini, kita perlu menggunakan perkongsian sumber merentas domain untuk membenarkan data antara domain berbeza berinteraksi.

Bagaimanakah Laravel melaksanakan akses merentas domain?

Rangka kerja Laravel menyediakan banyak middleware praktikal yang boleh mencapai akses merentas domain dengan mudah. Di bawah ini kami akan memperkenalkan dua kaedah pelaksanaan.

Kaedah pelaksanaan pertama: menggunakan perisian tengah CORS Laravel

Pertama, anda perlu memperkenalkan pakej perisian tengah CORS pihak ketiga Kami boleh menggunakan pakej laravel-cors :

  1. Pasang pakej laravel-cors
composer require barryvdh/laravel-cors
Salin selepas log masuk
  1. Daftar perisian tengah

Daftar perisian tengah dalam fail appHttpKernel.php :

protected $middleware = [
    // Other middlewares
    BarryvdhCorsHandleCors::class,
];
Salin selepas log masuk
  1. Konfigurasikan parameter CORS

Kemudian konfigurasikan parameter merentas domain dalam fail config/cors.php, seperti ditunjukkan di bawah:

<?php
return [
    'paths' => [
        'api/*',
        '/*'
    ],

    'allowed_methods' => [
        'GET',
        'POST',
        'PUT',
        'DELETE',
        'OPTIONS',
    ],

    'allowed_origins' => [
        '*',
    ],

    'allowed_origins_patterns' => [],

    'allowed_headers' => [
        'Content-Type',
        'X-Requested-With',
        'Authorization',
        'Accept',
        'Origin',
    ],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => true,
];
Salin selepas log masuk

Dalam kod di atas, atribut laluan Ia mentakrifkan laluan API yang perlu menyokong domain silang Atribut kaedah_boleh mentakrifkan kaedah HTTP yang membenarkan domain asal Atribut yang dibenarkan mentakrifkan sumber yang membenarkan merentas domain (* menunjukkan semua sumber ). Atribut allowed_headers mentakrifkan tajuk permintaan yang membenarkan penghantaran merentas domain.

Kaedah pelaksanaan kedua: menggunakan perisian tengah Laravel

Ia juga merupakan pilihan yang baik untuk melaksanakan akses merentas domain melalui perisian tengah Laravel tersuai. Dengan cara ini, kita perlu menulis perisian tengah Laravel sendiri untuk mengendalikan permintaan akses merentas domain. Berikut ialah contoh pelaksanaan asas:

  1. Mencipta middleware merentas domain

Pertama, kita perlu mencipta fail CorsMiddleware.php dalam direktori app/Http/Middleware , Kandungan fail adalah seperti berikut:

<?php
namespace AppHttpMiddleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->header('Access-Control-Allow-Origin', '*')
                 ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
                 ->header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization');

        return $response;
    }
}
Salin selepas log masuk

Kaedah pemegang dalam kod di atas boleh dilaksanakan apabila setiap permintaan tiba, membenarkan akses merentas domain dengan menetapkan pengepala respons.

  1. Daftar perisian tengah merentas domain

Seterusnya kita perlu mendaftarkan CorsMiddleware ke dalam rangka kerja Laravel untuk kegunaan mudah. Tambahkan kod berikut pada fail app/Http/Kernel.php:

protected $routeMiddleware = [
    // Other middleware
    'cors' => AppHttpMiddlewareCorsMiddleware::class,
];
Salin selepas log masuk

CorsMiddleware::class dalam kod di atas ialah perisian tengah CorsMiddleware tersuai kami Selepas mendaftar di sini, anda boleh menggunakannya dalam program.

  1. Gunakan perisian tengah merentas domain

Dalam pengawal atau laluan yang perlu menyokong merentas domain, gunakan CorsMiddleware berdaftar, contohnya:

rreee

Setakat ini, kami telah berjaya melaksanakan akses merentas domain di bawah rangka kerja Laravel dalam dua cara. Dalam pembangunan sebenar, kami boleh memilih kaedah yang sesuai dengan kami mengikut keperluan khusus untuk mencapai akses merentas domain, menjadikan aplikasi web kami lebih fleksibel dan cekap.

Atas ialah kandungan terperinci laravel melaksanakan akses merentas domain. 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