diff --git a/src/Http/HttpResponseBuilder.php b/src/Http/HttpResponseBuilder.php index b98159f..0c5fe23 100644 --- a/src/Http/HttpResponseBuilder.php +++ b/src/Http/HttpResponseBuilder.php @@ -61,7 +61,10 @@ class HttpResponseBuilder extends HttpMessageBuilder { $expires = DateTime::createFromInterface($expires); } - $maxAge = $expires->difference(DateTime::now())->totalSeconds(); + $now = DateTime::now(); + $maxAge = $expires->isLessThanOrEqual($now) + ? -1 : $expires->difference($now)->totalSeconds(); + $expires = $expires->toCookieString(); $cookie .= '; Expires=' . $expires . '; Max-Age=' . $maxAge; } @@ -81,6 +84,17 @@ class HttpResponseBuilder extends HttpMessageBuilder { $this->addHeader('Set-Cookie', $cookie); } + public function removeCookie( + string $name, + string $path = '', + string $domain = '', + bool $secure = false, + bool $httpOnly = false, + bool $sameSiteStrict = false + ): void { + $this->addCookie($name, '', -9001, $path, $domain, $secure, $httpOnly, $sameSiteStrict); + } + public function redirect(string $to, bool $permanent = false): void { $this->setStatusCode($permanent ? 301 : 302); $this->setHeader('Location', $to);