Maison >cadre php >Laravel >Comment configurer Laravel inter-domaines (deux méthodes)

Comment configurer Laravel inter-domaines (deux méthodes)

PHPz
PHPzoriginal
2023-04-08 15:30:023419parcourir

Dans les projets avec front-end et back-end séparés, des problèmes inter-domaines peuvent survenir lorsque le front-end demande l'interface back-end. Parmi eux, un scénario typique est le suivant : le projet frontal s'exécute sur http://localhost:8080 et le projet back-end s'exécute sur http://localhost:8000. Dans ce cas, les paramètres inter-domaines doivent être définis. ensemble.

Dans Laravel, vous pouvez utiliser les deux méthodes suivantes pour configurer plusieurs domaines.

  1. Méthode Middleware

Créez d'abord un middleware CorsMiddleware :

php artisan make:middleware CorsMiddleware

Gérez les domaines inter-domaines dans CorsMiddleware :

<?php

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $origin = $request->header('Origin') ?: '*';

        header('Access-Control-Allow-Origin: ' . $origin);
        header('Access-Control-Allow-Headers: Origin, Content-Type, Authorization');
        header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');

        return $next($request);
    }
}

Le middleware sera enregistré dans le tableau $middleware dans Http/Kernel.php:

protected $middleware = [
    // ...
    \App\Http\Middleware\CorsMiddleware::class,
];

À ce moment , Laravel ajoutera des informations liées à plusieurs domaines telles que Access-Control-Allow-Origin dans l'en-tête de réponse.

  1. Pack d'extension Laravel-cors

En fait, la communauté Laravel dispose déjà de nombreux packages d'extension open source qui peuvent être utilisés pour gérer les problèmes inter-domaines. Par exemple, laravel-cors fournit certains éléments de configuration pour configurer des requêtes inter-domaines.

Tout d'abord, installez le package d'extension :

composer require barryvdh/laravel-cors

Ensuite, enregistrez le fournisseur de services dans le tableau des fournisseurs dans config/app.php :

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
],

Enfin, publiez le fichier de configuration :

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"

À ce stade, vous pouvez dans config /cors. Configurez les requêtes inter-domaines en php :

return [

    /*
    |--------------------------------------------------------------------------
    | Laravel CORS Options
    |--------------------------------------------------------------------------
    |
    | The allowed_methods and allowed_headers options are case-insensitive.
    |
    */

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'allowed_methods' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => false,

];

Configurez simplement en fonction de vos besoins.

Vous trouverez ci-dessus deux méthodes pour configurer les paramètres inter-domaines dans Laravel. Choisissez simplement celle qui vous convient.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn