>PHP 프레임워크 >Laravel >Laravel에서 크로스 도메인을 올바르게 설정하는 방법

Laravel에서 크로스 도메인을 올바르게 설정하는 방법

PHPz
PHPz원래의
2023-04-13 10:07:152515검색

Laravel은 라우팅, 미들웨어, ORM 등을 포함한 많은 강력한 기능을 제공하는 인기 있는 PHP 웹 애플리케이션 프레임워크입니다. 그러나 Laravel을 사용하여 웹 애플리케이션을 구축할 때 도메인 간 문제가 발생하는 것은 매우 일반적입니다. 교차 도메인은 일반적으로 다른 도메인 이름의 리소스에 대한 액세스를 제한하는 브라우저의 동일 출처 정책으로 인해 발생합니다. 따라서 다른 도메인에 요청을 할 때에는 크로스 도메인을 설정해야 합니다.

아래에서는 Laravel에서 크로스 도메인을 올바르게 설정하는 방법을 소개합니다.

1. "Barryvdh-cors" 미들웨어 설치

Laravel과 관련된 타사 소프트웨어 패키지 "Barryvdh-cors"는 개발자가 도메인 간 문제를 해결하는 데 도움이 될 수 있습니다. "Barry vd. Heuvel"이라는 네덜란드인이 개발한 이 미들웨어를 통해 Laravel은 서버 측에서 CORS(Cross-Origin Resource Sharing) 구성을 수행할 수 있습니다.

이 미들웨어를 사용하려면 먼저 설치가 필요합니다. 다음 명령을 실행하세요:

composer require barryvdh/laravel-cors

미들웨어를 설치한 후 애플리케이션에 등록해야 합니다. config/app.php 파일을 열고 공급자 배열에 다음 코드를 추가합니다.

'providers' => [
    // ...
    Barryvdh\Cors\ServiceProvider::class,
];

그런 다음 별칭 배열에 다음 코드를 추가합니다.

'aliases' => [
    // ...
    'Cors' => Barryvdh\Cors\Facade::class,
];

2. 미들웨어 구성

미들웨어를 등록한 후 추가해야 합니다. 에서 이를 애플리케이션에 구성합니다. config/cors.php 파일을 열면 자동으로 생성될 수 있습니다. 그렇지 않은 경우 파일을 수동으로 생성하세요.

파일에서 도메인 간 액세스를 허용하는 도메인 이름과 AJAX를 통한 공유를 허용하는 HTTP 요청 방법을 구성할 수 있습니다. 다음은 구성 예시입니다.

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

이 예시에서는 모든 출처로부터의 교차 출처 액세스를 허용하지만 특정 요청 방법과 요청 헤더만 허용합니다. 더 많은 옵션을 맞춤 설정해야 한다면 [이 문서](https://github.com/barryvdh/laravel-cors)를 확인하세요.

3. 경로 또는 컨트롤러에서 미들웨어 사용

"Barryvdh-cors" 미들웨어를 설치하고 구성하면 경로 또는 컨트롤러에서 사용할 수 있습니다.

라우팅에 사용됨:

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

컨트롤러에 사용됨:

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

4. 결론

"Barryvdh-cors" 미들웨어를 사용하면 Laravel 애플리케이션의 도메인 간 문제를 쉽게 해결할 수 있습니다. 이 미들웨어는 라우팅과 컨트롤러를 지원할 뿐만 아니라 글로벌 구성, 그룹 구성 등도 지원하므로 크로스 도메인 정책을 보다 자유롭고 정확하게 제어할 수 있습니다.

위 내용은 Laravel에서 크로스 도메인을 올바르게 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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