Çerez ömrünü nasıl ayarlarım?


10

D8 örneğimde çerez ömrünü ayarlamakta sorun yaşıyorum. Tarayıcıyı kapatmak kullanıcının oturumunu kapatması için sıfıra ayarlamak istiyorum.

ini_set('session.cookie_lifetime', 0);Site / default / settings.php dosyasına ekledim . Dosyada daha önce cookie_lifetime referansı yoktu. Çizgiyi ekledim. Ayrıca Drupal önbelleğini temizledim ve Chrome önbelleğimi temizledim. Ne yazık ki, saygı duyulmuyor. Oturumlar tarayıcı kapatıldıktan sonra da devam eder.

Kod tabanının tamamını aradım ini_set('session.cookie_lifetime', 200000);ancak sitemde görünmüyor. Drupal'ın çerez ömrünü nerede ayarladığını görmüyorum. Ayrıca kökte bir php.ini dosyası aracılığıyla ayar eklemeyi denedim ama bu Drupal tarafından yönetiliyor.

Bunun basit bir şey olduğunu hissediyorum, bu yüzden eklentilerden kaçınmak istiyorum. Herkesten haber bekliyorum. Şimdiden teşekkürler.

Yanıtlar:


18

Oturum çerezi seçenekleri için D8, ayarlar yerine kapsayıcı parametrelerini kullanır. İle services.ymlaynı klasörde bir dosya oluşturun settings.php. Varsayılan değerler şöyledir default.services.yml. Bu dosyayı kopyalayabilir services.ymlve değiştirebilirsiniz:

/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, çok teşekkürler. Sonunda aldığımız çözüm bu.
Tony Stecca

Merhaba, belki dinamik olarak yapmanın herhangi bir yolunu biliyorsun?
Артем Ильин

2
@ АртемИльин, yapamazsınız, çerez seçenekleri statik olarak kabın içine derlenir. Ancak hizmeti takas edebilir session_configurationve geçersiz kılabilir __constructveya getOptionsDrupal \ Core \ Session \ SessionConfiguration.
4k4

4к4, Cevabınız için çok teşekkürler, umarım yardımcı olur)
Артем Ильин

Takip eden soruya bağlantı drupal.stackexchange.com/questions/279292/…
4k4

-2

# Varsayılan değerlerini ayarladığınız çerezleri ve oturum değerlerini aynı oturum veya çerez değerlerine değiştirmek istiyorsunuz, aksi takdirde drupal 8'de çalışmaz

**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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.