Slim 프레임워크에서 미들웨어를 사용하여 CORS(교차 원본 리소스 공유)를 설정하는 방법
교차 도메인 리소스 공유(CORS)는 서버가 HTTP 응답 헤더에 몇 가지 추가 정보를 설정하여 브라우저는 도메인 간 요청을 허용합니다. 프런트엔드와 백엔드가 분리된 일부 프로젝트에서는 CORS 메커니즘을 사용하여 백엔드 인터페이스에 대한 프런트엔드의 도메인 간 요청을 실현할 수 있습니다.
Slim 프레임워크를 사용하여 REST API를 개발할 때 미들웨어를 사용하여 도메인 간 요청을 허용하도록 CORS 관련 HTTP 응답 헤더를 설정할 수 있습니다. 다음은 Slim 프레임워크에서 미들웨어를 사용하여 CORS를 설정하는 방법을 보여주는 예입니다.
먼저 CORS 관련 HTTP 응답 헤더를 설정하기 위해 사용자 정의 미들웨어 클래스를 생성해야 합니다. 다음 내용으로 CorsMiddleware라는 파일을 만듭니다.
<?php namespace AppMiddleware; use PsrHttpMessageRequestInterface; use PsrHttpMessageResponseInterface; use PsrHttpServerMiddlewareInterface; use PsrHttpServerRequestHandlerInterface; class CorsMiddleware implements MiddlewareInterface { public function process(RequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); return $response ->withHeader('Access-Control-Allow-Origin', '*') ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS') ->withHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization'); } }
위 코드는 CorsMiddleware 클래스를 정의하고 MiddlewareInterface 인터페이스를 구현합니다. 프로세스 메소드에서는 $handler의 핸들 메소드를 호출하여 요청된 응답 객체를 얻은 후 응답 객체의 withHeader 메소드를 사용하여 해당 CORS 헤더 정보를 설정합니다.
Slim 프레임워크에서 이 미들웨어를 사용하는 것은 간단합니다. 애플리케이션 구성에 미들웨어를 등록하기만 하면 됩니다. 애플리케이션의 index.php 파일에 다음 코드를 추가합니다.
<?php use AppMiddlewareCorsMiddleware; use SlimFactoryAppFactory; require __DIR__ . '/../vendor/autoload.php'; $app = AppFactory::create(); // 注册CorsMiddleware中间件 $app->add(new CorsMiddleware()); // 添加路由和处理逻辑 $app->get('/', function ($request, $response, $args) { $response->getBody()->write("Hello, world!"); return $response->withHeader('Content-Type', 'text/plain'); }); $app->run();
위 코드에서는 $app->add 메소드를 통해 CorsMiddleware 미들웨어를 애플리케이션에 등록합니다. 이러한 방식으로 각 요청은 이 미들웨어에 의해 처리되고 해당 CORS 응답 헤더가 설정됩니다.
이제 Slim 애플리케이션을 실행하고 도메인 간 요청을 보내 CORS가 작동하는지 테스트할 수 있습니다. 브라우저의 개발자 도구나 기타 HTTP 요청 도구를 사용하여 OPTIONS 요청을 애플리케이션의 루트 경로로 보낼 수 있습니다. 모든 것이 올바르게 설정되면 HTTP 응답 헤더에 Access-Control-Allow-Origin, Access-Control-Allow-Methods 및 Access-Control-Allow-Headers 필드가 포함되어 CORS 교차가 허용되는 것을 볼 수 있습니다. 도메인 요청.
위의 예를 통해 Slim 프레임워크에서 미들웨어를 사용하여 CORS 도메인 간 리소스 공유를 설정하는 방법을 배웠습니다. 이 방법은 매우 간단하고 유연하며 실제 프로젝트에서 필요에 따라 확장하고 사용자 정의할 수 있습니다. 프런트엔드와 백엔드를 분리하는 현재 추세에서 이 방법은 매우 유용하며 프런트엔드 교차 도메인 요청 문제를 처리하는 데 도움이 될 수 있습니다.
위 내용은 미들웨어를 사용하여 Slim 프레임워크에서 CORS(교차 도메인 리소스 공유)를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!