From 054b63c2925fb6ab534b6612619f06038c5c6791 Mon Sep 17 00:00:00 2001 From: Andy Pack Date: Fri, 23 Feb 2024 08:38:19 +0000 Subject: [PATCH] adding forbidden and expired creds handling --- Selector.MAUI/Pages/Login.razor | 3 +++ Selector.MAUI/Services/SelectorNetClient.cs | 7 +++++-- Selector.MAUI/Services/SessionManager.cs | 8 ++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Selector.MAUI/Pages/Login.razor b/Selector.MAUI/Pages/Login.razor index af8707b..1001c93 100644 --- a/Selector.MAUI/Pages/Login.razor +++ b/Selector.MAUI/Pages/Login.razor @@ -45,6 +45,9 @@ case SelectorNetClient.TokenResponseStatus.BadCreds: toast = "Login failed, try again"; break; + case SelectorNetClient.TokenResponseStatus.ExpiredCreds: + toast = "Credentials expired, try again"; + break; case SelectorNetClient.TokenResponseStatus.OK: logger.LogInformation("Login succeeded, redirecting"); navigation.NavigateTo("/app"); diff --git a/Selector.MAUI/Services/SelectorNetClient.cs b/Selector.MAUI/Services/SelectorNetClient.cs index 5da73ff..53c8e7f 100644 --- a/Selector.MAUI/Services/SelectorNetClient.cs +++ b/Selector.MAUI/Services/SelectorNetClient.cs @@ -36,7 +36,7 @@ public class SelectorNetClient : ISelectorNetClient // _baseUrl = "https://selector.sarsoo.xyz"; //} - //_baseUrl = "http://localhost:5000"; + // _baseUrl = "http://localhost:5000"; _baseUrl = "https://selector.sarsoo.xyz"; } @@ -81,6 +81,9 @@ public class SelectorNetClient : ISelectorNetClient case HttpStatusCode.Unauthorized: ret.Status = TokenResponseStatus.BadCreds; break; + case HttpStatusCode.Forbidden: + ret.Status = TokenResponseStatus.ExpiredCreds; + break; case HttpStatusCode.OK: ret.Status = TokenResponseStatus.OK; ret.Token = result.Content.ReadFromJsonAsync().Result.Token; @@ -107,7 +110,7 @@ public class SelectorNetClient : ISelectorNetClient public enum TokenResponseStatus { - Malformed, UserSearchFailed, BadCreds, OK + Malformed, UserSearchFailed, BadCreds, ExpiredCreds, OK } private class TokenModel diff --git a/Selector.MAUI/Services/SessionManager.cs b/Selector.MAUI/Services/SessionManager.cs index 29ff8ca..9179c7a 100644 --- a/Selector.MAUI/Services/SessionManager.cs +++ b/Selector.MAUI/Services/SessionManager.cs @@ -70,6 +70,14 @@ public class SessionManager case SelectorNetClient.TokenResponseStatus.UserSearchFailed: _logger.LogInformation("Token request failed, no user by that name"); + break; + case SelectorNetClient.TokenResponseStatus.ExpiredCreds: + _logger.LogInformation("Token expired, log back in"); + lastStoredKey = null; + lastRefresh = DateTime.Now; + + Preferences.Default.Remove(Constants.JwtPrefKey); + break; case SelectorNetClient.TokenResponseStatus.BadCreds: _logger.LogInformation("Token request failed, bad password");