From 082d2297df5113a76bcf6c66722dcc50a0002609 Mon Sep 17 00:00:00 2001 From: Salvador Cipolla Date: Thu, 30 Jan 2025 19:27:51 -0300 Subject: [PATCH] Handle Nebula token is expired --- Knossos.NET/Models/Nebula.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Knossos.NET/Models/Nebula.cs b/Knossos.NET/Models/Nebula.cs index 64875bd8..2bf9a0a2 100644 --- a/Knossos.NET/Models/Nebula.cs +++ b/Knossos.NET/Models/Nebula.cs @@ -736,6 +736,13 @@ private enum ApiMethod } else { + /* Nebula responds with a HTTP status code 401 for expired tokens, so lets try this again */ + if(needsLogIn && apiUserToken != null && response.StatusCode == System.Net.HttpStatusCode.Unauthorized) + { + Log.Add(Log.LogSeverity.Information, "Nebula.ApiCall()", "Nebula: User login token is expired."); + apiUserToken = null; + return await ApiCall(resourceUrl, data, needsLogIn, timeoutSeconds, method); + } /* Upload/Update/delete Mod Timeout Hack */ if(response.StatusCode.ToString() == "GatewayTimeout" && (resourceUrl == "mod/release" || resourceUrl == "mod/release/update" || resourceUrl == "mod/release/delete")) { @@ -773,6 +780,16 @@ private enum ApiMethod return reply; } } + else + { + /* Nebula responds with a HTTP status code 401 for expired tokens, so lets try this again */ + if (needsLogIn && apiUserToken != null && response.StatusCode == System.Net.HttpStatusCode.Unauthorized) + { + Log.Add(Log.LogSeverity.Information, "Nebula.ApiCall()", "Nebula: User login token is expired."); + apiUserToken = null; + return await ApiCall(resourceUrl, data, needsLogIn, timeoutSeconds, method); + } + } Log.Add(Log.LogSeverity.Error, "Nebula.ApiCall(" + resourceUrl + ")", "An error has ocurred during nebula api GET call: " + response.StatusCode + "(" + (int)response.StatusCode + ")."); } break;