diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 03dd3c3e43..141d89c2c7 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -4267,7 +4267,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "argon2", @@ -4314,7 +4314,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.42.0" +version = "1.42.1" dependencies = [ "base64", "chrono", @@ -4329,7 +4329,7 @@ dependencies = [ [[package]] name = "windmill-audit" -version = "1.42.0" +version = "1.42.1" dependencies = [ "chrono", "serde", @@ -4342,7 +4342,7 @@ dependencies = [ [[package]] name = "windmill-common" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "axum", @@ -4367,7 +4367,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.42.0" +version = "1.42.1" dependencies = [ "serde", "serde_json", @@ -4375,7 +4375,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "itertools", @@ -4387,7 +4387,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "itertools", @@ -4401,7 +4401,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "deno_core", @@ -4415,7 +4415,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "chrono", @@ -4438,7 +4438,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.42.0" +version = "1.42.1" dependencies = [ "anyhow", "async-recursion", diff --git a/backend/windmill-api/src/oauth2.rs b/backend/windmill-api/src/oauth2.rs index 79b21c9230..34d4b59dca 100644 --- a/backend/windmill-api/src/oauth2.rs +++ b/backend/windmill-api/src/oauth2.rs @@ -477,12 +477,19 @@ pub async fn _refresh_token<'c>( .client) .to_owned(); - let token = client + let token_json = client .exchange_refresh_token(&RefreshToken::from(account.refresh_token.clone())) .with_client(&http_client) - .execute::() + .execute::() .await .map_err(to_anyhow)?; + + let token = serde_json::from_value::(token_json.clone()).map_err(|e| { + Error::BadConfig(format!( + "Error deserializing response as a new token: {e}\nresponse:{token_json}" + )) + })?; + let expires_at = now_from_db(&mut tx).await? + chrono::Duration::seconds( token