Maison > cadre php > Laravel > Comment configurer correctement plusieurs domaines dans Laravel

Comment configurer correctement plusieurs domaines dans Laravel

PHPz
Libérer: 2023-04-13 10:27:38
original
2478 Les gens l'ont consulté

Laravel est un framework d'application Web PHP populaire qui offre de nombreuses fonctionnalités puissantes, notamment le routage, le middleware, l'ORM, etc. Cependant, lorsque nous construisons des applications Web avec Laravel, il est très courant de rencontrer des problèmes inter-domaines. L'interdomaine est généralement dû à la politique de même origine du navigateur, qui restreint l'accès aux ressources de différents noms de domaine. Par conséquent, lorsque nous faisons une demande vers un domaine différent, nous devons configurer plusieurs domaines.

Ci-dessous, nous expliquerons comment configurer correctement le cross-domain dans Laravel.

1. Installez le middleware "Barryvdh-cors"

Le progiciel tiers "Barryvdh-cors" lié à Laravel peut aider les développeurs à résoudre des problèmes inter-domaines. Développé par un Néerlandais nommé "Barry vd. Heuvel", ce middleware permet à Laravel d'effectuer la configuration CORS (Cross-Origin Resource Sharing) côté serveur.

Pour utiliser ce middleware, nous devons d'abord l'installer. Exécutez la commande suivante :

composer require barryvdh/laravel-cors
Copier après la connexion

Après avoir installé le middleware, nous devons l'enregistrer auprès de l'application. Ouvrez le fichier config/app.php et ajoutez le code suivant dans le tableau des fournisseurs :

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
];
Copier après la connexion

Ajoutez ensuite le code suivant dans le tableau des alias :

'aliases' => [
    // ...
    'Cors' => Barryvdh\Cors\Facade::class,
];
Copier après la connexion

2. Configurez le middleware

Après avoir enregistré le middleware, nous devons l'ajouter. à l'application Configurez-le dans . Ouvrez le fichier config/cors.php, il peut être généré automatiquement, sinon veuillez créer le fichier manuellement.

Dans le fichier, vous pouvez configurer des noms de domaine qui autorisent l'accès entre domaines et des méthodes de requête HTTP qui permettent le partage via AJAX, etc. Voici un exemple de configuration :

return [
    'supports_credentials' => false,
    'allowed_origins' => ['*'],
    'allowed_headers' => ['Content-Type', 'Authorization'],
    'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
    'exposed_headers' => [],
    'max_age' => 0,
];
Copier après la connexion

Dans cet exemple, nous autoriserons l'accès cross-origin depuis toutes les origines, mais uniquement des méthodes de requête et des en-têtes de requête spécifiques. Si vous avez besoin de personnaliser plus d'options, veuillez consulter [ce document](https://github.com/barryvdh/laravel-cors).

3. Utiliser le middleware dans les routes ou les contrôleurs

Lorsque nous avons installé et configuré le middleware "Barryvdh-cors", nous pouvons l'utiliser dans les routes ou les contrôleurs.

Utilisé dans le routage :

Route::get('/data', function () {
    return ['message' => 'Hello World'];
})->middleware('cors'); // Use cors middleware
Copier après la connexion

Utilisé dans le contrôleur :

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Barryvdh\Cors\HandleCors;

class ExampleController extends Controller
{
    /**
     * Use Cors middleware to handle the request
    */
    public function index(Request $request)
    {
        $middleware = new HandleCors();
        $response = $middleware->handle($request, function($request) {
            return ['message' => 'Hello World'];
        });
        return $response;
    }
}
Copier après la connexion

4 Conclusion

Avec le middleware "Barryvdh-cors", nous pouvons facilement résoudre les problèmes inter-domaines dans les applications Laravel. Ce middleware prend non seulement en charge le routage et les contrôleurs, mais prend également en charge la configuration globale et la configuration de groupe, etc., afin que nous puissions contrôler plus librement et plus précisément les politiques inter-domaines.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal