मैं जीवन भर कुकी कैसे सेट करूं?


10

मुझे अपने D8 उदाहरण में कुकी का जीवनकाल सेट करने में परेशानी हो रही है। मैं इसे शून्य पर सेट करना चाहूंगा ताकि ब्राउज़र उपयोगकर्ता को बंद कर दे।

मैंने ini_set('session.cookie_lifetime', 0);साइट / डिफ़ॉल्ट / settings.php फ़ाइल में जोड़ा है। फ़ाइल में कोई पिछला कुकी_लाइफ़टाइम संदर्भ नहीं था। मैंने लाइन जोड़ दी। मैंने Drupal cache को भी क्लियर किया है और अपना Chrome cache क्लियर किया है। दुख की बात है कि इसका सम्मान नहीं किया जा रहा है। ब्राउज़र बंद होने के बाद भी सत्र जारी रहता है।

मैंने पूरा कोडबेस खोज लिया है, ini_set('session.cookie_lifetime', 200000);लेकिन यह मेरी साइट में मौजूद नहीं है। मैं यह नहीं देखता कि द्रुपाल कुकी के जीवनकाल को कहाँ स्थापित कर रहा है। मैंने रूट में php.ini फ़ाइल के माध्यम से सेटिंग को जोड़ने का भी प्रयास किया है, लेकिन यह Drupal द्वारा शासित है।

मुझे लगता है कि यह एक साधारण बात है, इसलिए मैं प्लगइन्स से बचना चाहूंगा। सभी से सुनने का इंतजार कर रहे हैं। अग्रिम में धन्यवाद।

जवाबों:


18

सत्र के लिए कुकी विकल्प D8 सेटिंग्स के बजाय कंटेनर मापदंडों का उपयोग करता है। के services.ymlरूप में एक ही फ़ोल्डर में एक फ़ाइल बनाएँ settings.php। डिफ़ॉल्ट मान अंदर हैं default.services.yml। आप इस फ़ाइल की प्रतिलिपि बना सकते हैं services.ymlऔर इसे संशोधित कर सकते हैं:

/sites/default/services.yml:

parameters:
  session.storage.options:
    # Default ini options for sessions.
    #
    # Some distributions of Linux (most notably Debian) ship their PHP
    # installations with garbage collection (gc) disabled. Since Drupal depends
    # on PHP's garbage collection for clearing sessions, ensure that garbage
    # collection occurs by using the most common settings.
    # @default 1
    gc_probability: 1
    # @default 100
    gc_divisor: 100
    #
    # Set session lifetime (in seconds), i.e. the time from the user's last
    # visit to the active session may be deleted by the session garbage
    # collector. When a session is deleted, authenticated users are logged out,
    # and the contents of the user's $_SESSION variable is discarded.
    # @default 200000
    gc_maxlifetime: 200000
    #
    # Set session cookie lifetime (in seconds), i.e. the time from the session
    # is created to the cookie expires, i.e. when the browser is expected to
    # discard the cookie. The value 0 means "until the browser is closed".
    # @default 2000000
    cookie_lifetime: 2000000

4k4, बहुत बहुत धन्यवाद। यही वह समाधान है जिस पर हम आखिरकार उतरे।
टोनी स्टेक

नमस्ते, शायद आप इसे गतिशील रूप से करने का कोई तरीका जानते हैं?
Артем Ильин

2
@ АртемИльин, आप नहीं कर सकते, कुकी विकल्प संकलित रूप से कंटेनर में संकलित हैं। आप फिर भी सेवा को स्वैप कर सकते session_configurationहैं __constructया getOptionsDrupal \ Core \ Session \ SessionConfiguration को ओवरराइड कर सकते हैं।
4k4

4к4, आपके उत्तर के लिए बहुत धन्यवाद, आशा है कि यह मदद करता है)
Артем Ильин

अनुवर्ती प्रश्न drupal.stackexchange.com/questions/279292/…
4k4

-2

आप सत्र या कुकी के समान मूल्यों पर #default मान सेट करने वाले कुकीज़ और सत्र मानों को संशोधित करना चाहेंगे अन्यथा यह ड्रुपल 8 में काम नहीं करेगा

**Ex : #default 0
gc_maxlifetime: 0**

parameters:
  session.storage.options:
    # Default ini options for sessions.
    #
    # Some distributions of Linux (most notably Debian) ship their PHP
    # installations with garbage collection (gc) disabled. Since Drupal depends
    # on PHP's garbage collection for clearing sessions, ensure that garbage
    # collection occurs by using the most common settings.
    # @default 1
    gc_probability: 1
    # @default 100
    gc_divisor: 100
    #
    # Set session lifetime (in seconds), i.e. the time from the user's last
    # visit to the active session may be deleted by the session garbage
    # collector. When a session is deleted, authenticated users are logged out,
    # and the contents of the user's $_SESSION variable is discarded.
    # @default 200000
    gc_maxlifetime: 200000
    #
    # Set session cookie lifetime (in seconds), i.e. the time from the session
    # is created to the cookie expires, i.e. when the browser is expected to
    # discard the cookie. The value 0 means "until the browser is closed".
    # @default 2000000
    cookie_lifetime: 2000000
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.