Según tengo entendido, la duración de la sesión en Drupal está limitada por la session.gc_maxlifetime
configuración predeterminada de unos 2,3 días.
Entonces, ¿de qué sirve session.cookie_lifetime
estar configurado en 23 días?
Aquí está el fragmento 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);
Supongamos que he establecido ambos session.gc_probability
y session.gc_divisor
1 por el simple hecho de esta pregunta.
¿Porque no quieres que una galleta desaparezca misteriosamente? ¿Desea que esté allí para que la sesión se pueda invalidar con gracia? ¿Te está causando algún problema real?
—
Mołot
Eso es entonces. Pero, ¿no sería una mejor idea hacer que la cookie caduque a las 40 horas y la sesión del servidor a las 51 horas? Me refiero a que la vida útil de las cookies es inferior al tiempo de caducidad del servidor.
—
user5858
Esto se basa principalmente en la opinión y solo los autores de PHP realmente pueden decirlo. Ah, y depende del controlador de sesión que hayas decidido usar. Pero, por lo general, no, no desea una sesión que se suponga que esté activa y que se pueda usar durante X horas más sin que nadie la use debido a la falta de cookies. Es un desperdicio de almacenamiento. Dejar la cookie más tiempo significa que casi siempre hay alguien que puede usar los datos de sesión guardados en el servidor, por lo que no se conserva ningún dato de sesión.
—
Mołot