최신 웹 애플리케이션에서 CORS(Cross-Origin Resource Sharing)는 필수 기능이 되었습니다. 웹 애플리케이션을 개발하기 위해 Laravel 프레임워크를 사용할 때, 도메인 간 접근이 필요한 상황에 자주 직면하게 됩니다. 이 기사에서는 보다 유연하고 효율적인 웹 애플리케이션을 개발할 수 있도록 Laravel 프레임워크를 사용하여 도메인 간 리소스 공유를 달성하는 방법을 소개합니다.
도메인 간 리소스 공유란 무엇입니까?
웹 개발에서 CORS(Cross-Origin Resource Sharing)는 한 웹 사이트의 페이지에서 다른 웹 사이트의 리소스를 사용하는 것을 의미합니다. 예를 들어, 한 웹사이트(웹사이트 A)는 데이터 등을 얻기 위해 다른 웹사이트(웹사이트 B)의 API 인터페이스를 사용합니다. 브라우저의 동일 출처 정책으로 인해 다른 웹사이트의 리소스를 직접 사용할 수 없습니다. 이 경우 서로 다른 도메인 간의 데이터가 상호 작용할 수 있도록 도메인 간 리소스 공유를 사용해야 합니다.
Laravel은 도메인 간 액세스를 어떻게 구현합니까?
Laravel 프레임워크는 도메인 간 액세스를 쉽게 달성할 수 있는 유용한 미들웨어를 많이 제공합니다. 아래에서는 두 가지 구현 방법을 소개합니다.
첫 번째 구현 방법: Laravel의 CORS 미들웨어 사용
먼저 타사 CORS 미들웨어 패키지를 도입해야 합니다. 구체적인 단계는 다음과 같습니다.
composer require barryvdh/laravel-cors
appHttpKernel.php 파일에 미들웨어를 등록하세요:
protected $middleware = [ // Other middlewares BarryvdhCorsHandleCors::class, ];
그런 다음 config/cors.php 파일에서 도메인 간 매개변수를 다음과 같이 구성하세요.
[ '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 미들웨어를 직접 작성해야 합니다. 다음은 기본 구현 예입니다.
먼저 app/Http/Middleware 디렉터리에 CorsMiddleware.php 파일을 생성해야 합니다. 파일 내용은 다음과 같습니다.
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 위 코드의 핸들은 각 요청에 대해 메소드를 실행하여 응답 헤더를 설정하여 도메인 간 액세스를 허용할 수 있습니다.
그런 다음 쉽게 사용할 수 있도록 CorsMiddleware를 Laravel 프레임워크에 등록해야 합니다. app/Http/Kernel.php 파일에 다음 코드를 추가합니다. 위 코드의
protected $routeMiddleware = [ // Other middleware 'cors' => AppHttpMiddlewareCorsMiddleware::class, ];
CorsMiddleware::class는 우리의 맞춤형 CorsMiddleware 미들웨어입니다. 여기에서 등록한 후 프로그램에서 사용할 수 있습니다.
교차 도메인을 지원해야 하는 컨트롤러 또는 경로에서는 등록된 CorsMiddleware를 사용하세요. 예:
Route::group(['middleware' => ['cors']], function () { // 这里可以添加跨域API });
지금까지 우리는 두 가지 방법으로 교차 도메인에서 Laravel을 성공적으로 구현했습니다. 프레임워크 아래에서 액세스합니다. 실제 개발에서는 도메인 간 액세스를 달성하기 위한 특정 요구 사항에 따라 적합한 방법을 선택하여 웹 애플리케이션을 보다 유연하고 효율적으로 만들 수 있습니다.
위 내용은 laravel은 도메인 간 액세스를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!