現在のプロジェクトで、お客様から、サイトにログイン後、翌日にサイトに入ってもログインしたままの状態になっているが、タイムアウトは無いのかと聞かれ、タイムアウトの設定方法を調べたので以下に記述します。
調べたところ、デフォルトではタイムアウト値が200万秒(556時間=23日)なので、普通に使っている限りは、土日をはさんでも、ログイン状態が維持されてしまいます。。
services.ymlの設定
ググったところ、とても古い情報(Drupal 6の場合の設定方法)としては、Automatically Log-Out Users When They Close Their Browserがあったのですが、Drupal 8の場合は、How do I set the cookie lifetime?に記述してある設定が必要です。
設定内容としては、上記のリンクに書いてある内容そのままですが、以下にも記述しておきます。
設定は、以下のファイルに記述します。
/sites/default/services.yml
しかし、初期状態では、上記ディレクトリにservices.ymlはないので、同じディレクトリ内にあるdefault.services.ymlをコピーし、ファイル名をservices.ymlとします。
そして、以下のcookie_lifetimeを設定します。
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_lifetimeの値を0に設定すると、ブラウザーを閉じるとoookieがクリアされます。
カテゴリー
コメント
コメントを追加