2015-06-21 12 views
9

Laravel 5.1'de tek sayfalık bir uygulama yaşıyorum. API anahtarını tutmak için localStorage kullanıyorum ve çerezlere ihtiyacım yok. Laravel benim için iki çerezleri oluşturur: Ben çevre config array için SESSION_DRIVER ayarlarsanızÇerezler Laravel 5'te nasıl devre dışı bırakılır?

  • XSRF-TOKEN
  • laravel_session

, laravel_session çerez artık oluşturulur.

Ama VerifyCsrfToken katman sınıfta bu kod parçası buldum, çünkü XSRF-TOKEN çerez ile bir sorun olabilir düşünüyorum:

public function handle($request, Closure $next) 
{ 
    if ($this->isReading($request) || $this->shouldPassThrough($request) || $this->tokensMatch($request)) { 
     return $this->addCookieToResponse($request, $next($request)); 
    } 

    throw new TokenMismatchException; 
} 

Ve addCookieToResponse yöntem aşağıdaki gibidir:

protected function addCookieToResponse($request, $response) 
{ 
    $config = config('session'); 

    $response->headers->setCookie(
     new Cookie(
      'XSRF-TOKEN', $request->session()->token(), time() + 60 * 120, 
      $config['path'], $config['domain'], false, false 
     ) 
    ); 

    return $response; 
} 

Ne olursa olsun bu kurabiyeyi ayarlar gibi görünüyor. Bu aracı yazılımı devre dışı bırakabilirim, ancak CSRF belirtecini HTTP üstbilgileriyle doğrulamak için kullanmak istiyorum. Tanımlama bilgilerini tamamen devre dışı bırakabilir miyim?

+1

Jetonları kullanarak laravel fro API kullanıyorsanız, neden VerifyCsrfToken katman yazılımını tamamen devre dışı bırakmıyorsunuz? Bu, umrumda olmadığınız çerezleri kullanır. Uygulamayı/http/Kernel.php adresine giderek ve daha fazla arka plan bilgisi için – codegeek

+0

numaralı satırı yorumlayarak devre dışı bırakabilirsiniz, çerezleri devre dışı bırakmak için neden nedir? – ExoticChimp

+0

@ExoticChimp Kullanıyorsanız, kullanıcıyı çerezler hakkında bilgilendirmeyi zorunlu kılan bir yasa var. Onlara ihtiyacım yok, bu yüzden onları devre dışı bırakmayı ve "Çerezleri kullanıyoruz" bilgisinden özgür olmayı tercih ediyorum :) –

cevap

2

app\Http\Kernel.php adresindeki çerezleri ve oturumları ile ilgili satırları yorumlayın. Ben buldukları aşağıdaki olanlar;

\App\Http\Middleware\EncryptCookies::class, 
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
\Illuminate\Session\Middleware\StartSession::class, 
\Illuminate\View\Middleware\ShareErrorsFromSession::class, 
\App\Http\Middleware\VerifyCsrfToken::class, 

Yardım edin.

+0

Lütfen başlığımın son paragrafını okuyun. –

+0

CSRF belirtecini elbette HTTP üstbilgisiyle gönderebilirsiniz, ancak belirteci istemci tarafında saklamanız gerekir. Bu yüzden çerezleri devre dışı bırakmaya karar verirseniz, arka uçtan alınan jetonun nasıl iletileceğini ve saklanacağını belirlemelisiniz. Belki localstorage saklamak için kullanışlı gelir. Ve ayrıca gönderme prosedürleri de size bağlı, yani uygun HTTP üstbilgisini ayarlıyor. – ozanmuyes

İlgili konular