diff --git a/crates/defguard_core/src/handlers/auth.rs b/crates/defguard_core/src/handlers/auth.rs index d87956a577..6d8d513f95 100644 --- a/crates/defguard_core/src/handlers/auth.rs +++ b/crates/defguard_core/src/handlers/auth.rs @@ -311,13 +311,25 @@ pub async fn authenticate( )] pub async fn logout( cookies: CookieJar, + private_cookies: PrivateCookieJar, SessionExtractor(session): SessionExtractor, user_agent: TypedHeader, InsecureClientIp(insecure_ip): InsecureClientIp, State(appstate): State, -) -> Result<(CookieJar, ApiResponse), WebError> { - // remove auth cookie - let cookies = cookies.remove(Cookie::from(SESSION_COOKIE_NAME)); +) -> Result<(CookieJar, PrivateCookieJar, ApiResponse), WebError> { + let cookie_domain = server_config() + .cookie_domain + .as_ref() + .ok_or(WebError::Http(StatusCode::INTERNAL_SERVER_ERROR))? + .clone(); + let session_cookie = Cookie::build((SESSION_COOKIE_NAME, "")) + .domain(cookie_domain.clone()) + .path("/"); + let sign_in_cookie = Cookie::build((SIGN_IN_COOKIE_NAME, "")) + .domain(cookie_domain) + .path("/"); + let cookies = cookies.remove(session_cookie); + let private_cookies = private_cookies.remove(sign_in_cookie); let user = User::find_by_id(&appstate.pool, session.user_id) .await? .ok_or_else(|| WebError::BadRequest(format!("User {} does not exist", session.user_id)))?; @@ -337,7 +349,7 @@ pub async fn logout( event: Box::new(ApiEventType::UserLogout), })?; - Ok((cookies, ApiResponse::default())) + Ok((cookies, private_cookies, ApiResponse::default())) } /// Enable MFA diff --git a/web/src/pages/UsersOverviewPage/UsersTable.tsx b/web/src/pages/UsersOverviewPage/UsersTable.tsx index e4ed217c88..8fad3dde29 100644 --- a/web/src/pages/UsersOverviewPage/UsersTable.tsx +++ b/web/src/pages/UsersOverviewPage/UsersTable.tsx @@ -24,7 +24,6 @@ import { Avatar } from '../../shared/defguard-ui/components/Avatar/Avatar'; import { Badge } from '../../shared/defguard-ui/components/Badge/Badge'; import { Button } from '../../shared/defguard-ui/components/Button/Button'; import type { ButtonProps } from '../../shared/defguard-ui/components/Button/types'; -import { EmptyState } from '../../shared/defguard-ui/components/EmptyState/EmptyState'; import { EmptyStateFlexible } from '../../shared/defguard-ui/components/EmptyStateFlexible/EmptyStateFlexible'; import { Icon, IconKind } from '../../shared/defguard-ui/components/Icon'; import type { MenuItemsGroup } from '../../shared/defguard-ui/components/Menu/types'; @@ -620,7 +619,7 @@ export const UsersTable = () => {