2015-06-21 7 views
9

मेरे पास लैरवेल 5.1 पर सिंगल-पेज ऐप है। मैं एपीआई कुंजी रखने के लिए स्थानीय स्टोरेज का उपयोग करता हूं और मुझे कुकीज़ की आवश्यकता नहीं है। Laravel मेरे लिए दो कुकीज़ बनाता है:लार्वेल 5 में कुकीज़ कैसे अक्षम करें?

  • XSRF-टोकन
  • laravel_session

अगर मैं अपने पर्यावरण config में array करने के लिए SESSION_DRIVER निर्धारित करते हैं, laravel_session कुकी नहीं रह गया है उत्पन्न होता है।

लेकिन मुझे लगता है XSRF-TOKEN कुकी के साथ एक समस्या हो सकती है, क्योंकि मैं VerifyCsrfToken मिडलवेयर कक्षा में कोड के इस टुकड़े को पता चला:

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

और addCookieToResponse विधि इस प्रकार है:

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

ऐसा लगता है कि यह इस कुकी को कोई फर्क नहीं पड़ता कि इससे कोई फर्क नहीं पड़ता। मैं इस मिडलवेयर को अक्षम कर सकता हूं, लेकिन मैं इसका उपयोग HTTP हेडर के साथ सीएसआरएफ टोकन को सत्यापित करने के लिए करना चाहता हूं। क्या मैं कुकीज़ को पूरी तरह से अक्षम कर सकता हूं?

+1

यदि आप टोकन का उपयोग कर लार्वेल फ्रो एपीआई का उपयोग कर रहे हैं, तो VerifyCsrf टोकन मिडलवेयर को पूरी तरह अक्षम क्यों नहीं करें? यह कुकीज़ का उपयोग करता है जिनकी आपको परवाह नहीं है। आप ऐप/http/Kernel.php पर जाकर अक्षम कर सकते हैं और अधिक पृष्ठभूमि जानकारी के लिए लाइन – codegeek

+0

पर टिप्पणी कर सकते हैं, कुकीज को अक्षम करने का कारण क्या है? – ExoticChimp

+0

@ExoticChimp एक ऐसा कानून है जो उपयोगकर्ता को कुकीज के बारे में सूचित करने के लिए अनिवार्य बनाता है यदि आप किसी का उपयोग करते हैं। मुझे उनकी आवश्यकता नहीं है, इसलिए मैं उन्हें अक्षम कर दूंगा और "हम कुकीज़ का उपयोग कर रहे हैं" से मुक्त रहें :) –

उत्तर

2

बस कुकीज़ और सत्र से संबंधित app\Http\Kernel.php में लाइनों पर टिप्पणी करें। निम्नलिखित जो मैंने पाया;

\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, 

उम्मीद है कि यह मदद करता है।

+0

कृपया मेरे विषय का अंतिम अनुच्छेद पढ़ें। –

+0

आप HTTP शीर्षलेख के माध्यम से सीएसआरएफ टोकन भेज सकते हैं, लेकिन आपको क्लाइंट-साइड पर टोकन स्टोर करना होगा। इसलिए यदि आप कुकीज को अक्षम करने के इच्छुक हैं तो आपको यह पता लगाना होगा कि बैक-एंड से प्राप्त टोकन को कैसे प्रेषित और स्टोर करना है। हो सकता है कि स्थानीय स्टोरेज स्टोर करने में आसान हो। और प्रक्रियाओं को भी आप पर भेजना है, यानी उचित HTTP शीर्षलेख स्थापित करना। – ozanmuyes

संबंधित मुद्दे