gilsonsouzah / laracors by gilsonsouza

Laravel CORS Enable
688
0
1
Package Data
Maintainer Username: gilsonsouza
Maintainer Contact: gilsonfernandesbatista@gmail.com (Gilson Fernandes Batista de Souza)
Package Create Date: 2016-08-01
Package Last Update: 2017-05-17
Language: PHP
License: MIT
Last Refreshed: 2024-11-22 03:03:17
Package Statistics
Total Downloads: 688
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

1. Dependência

Usando o composer, execute o comando a seguir para instalar automaticamente composer.json:

composer require gilsonsouza/lara-cors

ou manualmente no seu arquivo composer.json

{
    "require": {
        "composer require gilsonsouza/lara-cors": "^1.0"
    }
}

2. Middlewares

Para utilizá-los é necessário registrá-los no seu arquivo app/Http/Kernel.php.

 protected $middleware = [
        // other middleware ommited
    	\LaraCors\Cors\CorsMiddleware::class,
 ];

3. Provider (opcional)

Selecionar os domínios permitidos no Laraver-Cors em sua aplicação Laravel, é necessário registrar o package no seu arquivo config/app.php. Adicione o seguinte código no fim da seção providers

// file START ommited
    'providers' => [
        // other providers ommited
        \LaraCors\Cors\CorsServiceProvider::class,
    ],
// file END ommited

3.1 Publicando o arquivo de configuração (somente se tiver feito o passo 3)

Para publicar o arquivo de configuração padrão que acompanham o package, execute o seguinte comando:

php artisan vendor:publish  --provider="LaraCors\Cors\CorsServiceProvider"

4 Configurações (somente se tiver feito o passo 3, e 3.1)

Configure o arquivo com os domínios que dejeja liberar

config/cors.php

5 Requisições Ajax

Se estiver usando o guard do laravel e a autenticação via middleware (Authenticate), em suas requisições via ajax, adicione os seguintes parâmetros (nesse caso eu estou utilizando o ajax do jquery, mas utilize o método que preferir, somente lembre de adicionar os parâmetros conforme definidos no seu método)

crossDomain : true,
xhrFields: {
    withCredentials: true
}

Ex.:

$.ajax({
    type: "GET",
    dataType: 'json',
    url: API_ENDPOINT,
    crossDomain : true,
    xhrFields: {
        withCredentials: true
    }
})
.done(function( data ) {
    console.log(data);
});

6 Bônus

Caso seu servidor seje apache, talvez seja necessário adicionar estas linhas abaixo ao .htaccess

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    </IfModule>