diff --git a/lib/SimpleSAML/Session.php b/lib/SimpleSAML/Session.php index 58081d72b3ab0ac1e21e7e611224352c8dbfab27..78ada32740a805103835b22b386bfc51089771a2 100644 --- a/lib/SimpleSAML/Session.php +++ b/lib/SimpleSAML/Session.php @@ -577,17 +577,17 @@ class Session implements Serializable, Utils\ClearableState /** * Set remember me expire time. * - * @param int $expire Unix timestamp when remember me session cookies expire. + * @param int $lifetime Number of seconds after when remember me session cookies expire. * @return void */ - public function setRememberMeExpire(int $expire = null): void + public function setRememberMeExpire(int $lifetime = null): void { - if ($expire === null) { - $expire = time() + self::$config->getInteger('session.rememberme.lifetime', 14 * 86400); + if ($lifetime === null) { + $lifetime = self::$config->getInteger('session.rememberme.lifetime', 14 * 86400); } - $this->rememberMeExpire = $expire; + $this->rememberMeExpire = time() + $lifetime; - $cookieParams = ['expire' => $this->rememberMeExpire]; + $cookieParams = ['lifetime' => $lifetime]; $this->updateSessionCookies($cookieParams); } @@ -789,6 +789,7 @@ class Session implements Serializable, Utils\ClearableState public function updateSessionCookies(array $params = []): void { $sessionHandler = SessionHandler::getSessionHandler(); + $params = array_merge($sessionHandler->getCookieParams(), is_array($params) ? $params : []); if ($this->sessionId !== null) { $sessionHandler->setCookie($sessionHandler->getSessionCookieName(), $this->sessionId, $params);