>PHP 프레임워크 >Laravel >laravel은 도메인 간 액세스를 구현합니다.

laravel은 도메인 간 액세스를 구현합니다.

PHPz
PHPz원래의
2023-05-26 17:32:072840검색

최신 웹 애플리케이션에서 CORS(Cross-Origin Resource Sharing)는 필수 기능이 되었습니다. 웹 애플리케이션을 개발하기 위해 Laravel 프레임워크를 사용할 때, 도메인 간 접근이 필요한 상황에 자주 직면하게 됩니다. 이 기사에서는 보다 유연하고 효율적인 웹 애플리케이션을 개발할 수 있도록 Laravel 프레임워크를 사용하여 도메인 간 리소스 공유를 달성하는 방법을 소개합니다.

도메인 간 리소스 공유란 무엇입니까?

웹 개발에서 CORS(Cross-Origin Resource Sharing)는 한 웹 사이트의 페이지에서 다른 웹 사이트의 리소스를 사용하는 것을 의미합니다. 예를 들어, 한 웹사이트(웹사이트 A)는 데이터 등을 얻기 위해 다른 웹사이트(웹사이트 B)의 API 인터페이스를 사용합니다. 브라우저의 동일 출처 정책으로 인해 다른 웹사이트의 리소스를 직접 사용할 수 없습니다. 이 경우 서로 다른 도메인 간의 데이터가 상호 작용할 수 있도록 도메인 간 리소스 공유를 사용해야 합니다.

Laravel은 도메인 간 액세스를 어떻게 구현합니까?

Laravel 프레임워크는 도메인 간 액세스를 쉽게 달성할 수 있는 유용한 미들웨어를 많이 제공합니다. 아래에서는 두 가지 구현 방법을 소개합니다.

첫 번째 구현 방법: Laravel의 CORS 미들웨어 사용

먼저 타사 CORS 미들웨어 패키지를 도입해야 합니다. 구체적인 단계는 다음과 같습니다.

  1. laravel-cors를 설치합니다. package
composer require barryvdh/laravel-cors
  1. 미들웨어 등록

appHttpKernel.php 파일에 미들웨어를 등록하세요:

protected $middleware = [
    // Other middlewares
    BarryvdhCorsHandleCors::class,
];
  1. CORS 매개변수 구성

그런 다음 config/cors.php 파일에서 도메인 간 매개변수를 다음과 같이 구성하세요.

<?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,
];

위 코드에서 paths 속성은 크로스 도메인을 지원해야 하는 API 경로를 정의하고, allowed_methods 속성은 허용되는 크로스 도메인 HTTP 메서드를 정의하고, allowed_origins 속성은 허용되는 크로스 도메인 소스를 정의합니다(*는 모든 소스를 나타냅니다). ), allowed_headers 속성은 허용되는 교차 도메인 소스를 정의합니다.

두 번째 구현 방법: Laravel의 미들웨어 사용

사용자 정의 Laravel 미들웨어를 통해 도메인 간 액세스를 구현하는 것도 좋은 선택입니다. 이러한 방식으로 우리는 도메인 간 액세스 요청을 처리하기 위해 Laravel 미들웨어를 직접 작성해야 합니다. 다음은 기본 구현 예입니다.

  1. 크로스 도메인 미들웨어 생성

먼저 app/Http/Middleware 디렉터리에 CorsMiddleware.php 파일을 생성해야 합니다. 파일 내용은 다음과 같습니다.

<?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;
    }
}

The 위 코드의 핸들은 각 요청에 대해 메소드를 실행하여 응답 헤더를 설정하여 도메인 간 액세스를 허용할 수 있습니다.

  1. 교차 도메인 미들웨어 등록

그런 다음 쉽게 사용할 수 있도록 CorsMiddleware를 Laravel 프레임워크에 등록해야 합니다. app/Http/Kernel.php 파일에 다음 코드를 추가합니다. 위 코드의

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

CorsMiddleware::class는 우리의 맞춤형 CorsMiddleware 미들웨어입니다. 여기에서 등록한 후 프로그램에서 사용할 수 있습니다.

  1. 교차 도메인 미들웨어 사용

교차 도메인을 지원해야 하는 컨트롤러 또는 경로에서는 등록된 CorsMiddleware를 사용하세요. 예:

Route::group(['middleware' => ['cors']], function () {
    // 这里可以添加跨域API
});

지금까지 우리는 두 가지 방법으로 교차 도메인에서 Laravel을 성공적으로 구현했습니다. 프레임워크 아래에서 액세스합니다. 실제 개발에서는 도메인 간 액세스를 달성하기 위한 특정 요구 사항에 따라 적합한 방법을 선택하여 웹 애플리케이션을 보다 유연하고 효율적으로 만들 수 있습니다.

위 내용은 laravel은 도메인 간 액세스를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.