clear cookies for cloud windmill.dev subdomains

This commit is contained in:
Ruben Fiszel
2025-01-29 17:38:06 +01:00
parent 680fb1852a
commit f3ef5105d3
+18
View File
@@ -47,6 +47,7 @@ use windmill_common::users::COOKIE_NAME;
use windmill_common::users::{truncate_token, username_to_permissioned_as};
use windmill_common::utils::paginate;
use windmill_common::worker::CLOUD_HOSTED;
use windmill_common::BASE_URL;
use windmill_common::{
auth::{get_folders_for_user, get_groups_for_user},
db::UserDB,
@@ -1718,13 +1719,30 @@ pub async fn create_session_token<'c>(
if COOKIE_DOMAIN.is_some() {
cookie.set_domain(COOKIE_DOMAIN.clone().unwrap());
}
let mut expire: OffsetDateTime = time::OffsetDateTime::now_utc();
expire += time::Duration::days(3);
cookie.set_expires(expire);
cookies.add(cookie);
clear_windmill_dev(&cookies).await;
Ok(token)
}
async fn clear_windmill_dev(cookies: &Cookies) {
if !*CLOUD_HOSTED && BASE_URL.read().await.ends_with(".windmill.dev") {
//clear .windmill.dev cookie
let mut cookie = Cookie::new(COOKIE_NAME, "".to_string());
cookie.set_secure(IS_SECURE.read().await.clone());
cookie.set_same_site(Some(tower_cookies::cookie::SameSite::Lax));
cookie.set_http_only(true);
cookie.set_path(COOKIE_PATH);
cookie.set_domain(".windmill.dev");
// set expire in min timestamp
cookie.set_expires(time::OffsetDateTime::UNIX_EPOCH);
cookies.add(cookie);
}
}
async fn create_token(
Extension(db): Extension<DB>,
authed: ApiAuthed,