HTTP-Header: Lebenszeit für Session-ID-Cookie setzen
authorMoritz Bunkus <m.bunkus@linet.de>
Fri, 27 Nov 2020 09:44:56 +0000 (10:44 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Fri, 27 Nov 2020 09:48:41 +0000 (10:48 +0100)
Wenn ein Cookie kein Ablaufdatum gesetzt hat, so soll der Browser das
Cookie beim Beenden löschen. Damit ist es de facto unmöglich, ein
Session-Timeout anzugeben, das groß genug ist, damit man auch am
folgenden Arbeitstag noch eingeloggt ist (z.B. 24 Stunden).

`SL::Auth` berücksichtigt die Session-ID-Gültigkeit natürlich selber
schon, ist also die maßgebliche Instanz bzgl. der Gültigkeit, egal wie
lange der Browser das Cookie nun mitschickt. Aber wenn der Browser das
Cookie gar nicht mehr schickt, weil er zwischendurch geschlossen
wurde, kann `SL::Auth` auch nichts mehr machen.

SL/Form.pm

index 92d32e7..46c52cb 100644 (file)
@@ -385,6 +385,7 @@ sub create_http_response {
       $session_cookie = $cgi->cookie('-name'   => $main::auth->get_session_cookie_name(),
                                      '-value'  => $session_cookie_value,
                                      '-path'   => $uri->path,
+                                     '-expire' => '+' . ($::lx_office_conf{authentication}->{session_timeout} // 60) . 'm',
                                      '-secure' => $::request->is_https);
     }
   }