Pelo que entendi, o tempo de vida da sessão no Drupal é limitado, pois, session.gc_maxlifetime
por padrão, é definido como 2,3 dias.
Então, qual é a utilidade de session.cookie_lifetime
ser definido para 23 dias?
Aqui está o trecho de settings.php:
/**
* 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.
*/
ini_set('session.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".
*/
ini_set('session.cookie_lifetime', 2000000);
Por favor, assuma que eu configurei ambos session.gc_probability
e session.gc_divisor
1 apenas para fins desta pergunta.
Porque você não quer que um cookie desapareça misteriosamente? Você quer que ele esteja lá para que a sessão possa ser invalidada normalmente? Isso está causando algum problema real para você?
—
Mołot 31/07
É isso aí então. Mas não seria uma idéia melhor fazer com que o cookie expirasse em, digamos, 40 horas e a sessão do servidor em 51 horas? Quero dizer que a vida útil do cookie é inferior ao tempo de expiração do servidor.
—
user5858
Isso é amplamente baseado em opiniões e apenas autores de PHP podem realmente dizer. Ah, e isso depende do manipulador de sessões que você decidiu usar. Mas geralmente não, você não quer uma sessão que deveria estar ativa e utilizável por mais X horas sem ninguém para usá-la devido à falta de cookie. É um desperdício de armazenamento. Deixar o cookie por mais tempo significa que quase sempre existe alguém que pode usar os dados da sessão mantidos no servidor, portanto, nenhum dado da sessão é desperdiçado.
—
Mołot 31/07