Laravel을 사용하여 웹 애플리케이션을 구축할 때 보안상의 이유로 브라우저는 기본적으로 다른 도메인 간의 도메인 간 요청을 금지하므로 일부 기능이 제대로 작동하지 않을 수 있습니다. 이 문서에서는 Laravel 애플리케이션에서 교차 출처 요청에 대한 제한을 해제하는 방법을 설명합니다.
Cross-origin 요청은 브라우저에서 도메인 간 요청을 시작하는 기술입니다. 예를 들어 localhost:8000에서 실행되는 애플리케이션에서 localhost:8080에서 실행되는 API에 대한 요청을 시작합니다.
Laravel은 기본적으로 교차 도메인 요청에 대해 상당히 엄격한 제한을 두고 있습니다. 이는 교차 사이트 요청 위조 공격을 방지하기 위한 것입니다. 따라서 애플리케이션이 도메인 간 요청을 지원해야 하는 경우 Laravel의 도메인 간 요청 제한을 해제하는 몇 가지 단계를 수행해야 합니다.
다음은 Laravel 애플리케이션에서 도메인 간 요청에 대한 제한을 해제하는 데 사용할 수 있는 몇 가지 방법입니다.
프록시를 사용하여 도메인 간 요청을 전달할 수 있습니다. 이 경우 요청은 웹 애플리케이션과 동일한 도메인에 있고 도메인 간 요청 제한이 없는 서버로 전송됩니다. Laravel 애플리케이션은 항상 로컬 서버로부터 요청이 올 것으로 예상하므로 인터페이스가 렌더링되는 것에 대해 걱정하지 마십시오.
도메인 간 요청을 활성화하는 미들웨어를 작성할 수 있습니다. 이 미들웨어는 교차 출처 요청에 응답할 수 있도록 필요한 헤더를 설정합니다. 다음은 Laravel 애플리케이션에 미들웨어를 추가하기 위한 샘플 코드입니다:
<?php namespace App\Http\Middleware; use Closure; class CorsMiddleware { public function handle($request, Closure $next) { $headers = [ 'Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE', 'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin', ]; if ($request->getMethod() == "OPTIONS") { return response()->json('{"method":"OPTIONS"}', 200, $headers); } $response = $next($request); foreach ($headers as $key => $value) { $response->header($key, $value); } return $response; } }
애플리케이션에서 이 미들웨어를 도메인 간 요청 제한을 끄려는 경로에 추가하거나 글로벌 미들웨어 그룹에 추가할 수 있습니다.
Laravel은 도메인 간 요청을 처리하는 내장된 방법을 제공합니다. Laravel의 도메인 간 요청 기능은 경로나 컨트롤러에서 사용할 수 있습니다. 예:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; class ApiController extends Controller { public function index(Request $request) { $data = [ 'name' => 'John Doe', 'email' => 'johndoe@example.com', ]; $response = new Response($data); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE'); $response->header('Access-Control-Allow-Headers', 'Content-Type, X-Auth-Token, Origin'); return $response; } }
위 코드는 모든 출처의 도메인 간 요청을 허용하도록 응답 헤더를 설정합니다.
요약:
이 글에서는 Laravel 애플리케이션에서 도메인 간 요청 제한을 해제하는 세 가지 방법을 소개합니다. 프록시를 사용하는 것이 아마도 가장 쉬운 방법일 것입니다. 그러나 미들웨어나 Laravel의 내장 기능을 사용하여 교차 출처 요청을 보다 세밀하게 제어할 수 있습니다. 애플리케이션 요구 사항에 따라 원본 간 요청에 대한 제한을 비활성화하는 데 가장 적합한 정책을 선택할 수 있습니다.
위 내용은 Laravel 프로젝트에서 도메인 간 요청에 대한 제한을 해제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!