diff --git a/LANCommander.Playnite.Extension/InstallController.cs b/LANCommander.Playnite.Extension/InstallController.cs index d4510de..8ef573e 100644 --- a/LANCommander.Playnite.Extension/InstallController.cs +++ b/LANCommander.Playnite.Extension/InstallController.cs @@ -35,6 +35,11 @@ namespace LANCommander.PlaynitePlugin public override void Install(InstallActionArgs args) { + while (!Plugin.ValidateConnection()) + { + Plugin.ShowAuthenticationWindow(); + } + var gameId = Guid.Parse(Game.GameId); var game = Plugin.LANCommander.GetGame(gameId); diff --git a/LANCommander.Playnite.Extension/LANCommanderClient.cs b/LANCommander.Playnite.Extension/LANCommanderClient.cs index 68267f5..e1efb6b 100644 --- a/LANCommander.Playnite.Extension/LANCommanderClient.cs +++ b/LANCommander.Playnite.Extension/LANCommanderClient.cs @@ -131,9 +131,15 @@ namespace LANCommander.PlaynitePlugin public bool ValidateToken(AuthToken token) { + if (token == null) + return false; + var request = new RestRequest("/api/Auth/Validate") .AddHeader("Authorization", $"Bearer {token.AccessToken}"); + if (String.IsNullOrEmpty(token.AccessToken) || String.IsNullOrEmpty(token.RefreshToken)) + return false; + var response = Client.Post(request); return response.StatusCode == HttpStatusCode.OK; diff --git a/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs b/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs index 226d954..90225d2 100644 --- a/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs +++ b/LANCommander.Playnite.Extension/LANCommanderLibraryPlugin.cs @@ -61,28 +61,18 @@ namespace LANCommander.PlaynitePlugin } } + public bool ValidateConnection() + { + return LANCommander.ValidateToken(LANCommander.Token); + } + public override IEnumerable GetGames(LibraryGetGamesArgs args) { var gameMetadata = new List(); - if (LANCommander.Token == null || !LANCommander.ValidateToken(LANCommander.Token)) + while (!ValidateConnection()) { - try - { - var response = LANCommander.RefreshToken(LANCommander.Token); - - LANCommander.Token.AccessToken = response.AccessToken; - LANCommander.Token.RefreshToken = response.RefreshToken; - - if (!LANCommander.ValidateToken(LANCommander.Token)) - { - throw new Exception(); - } - } - catch - { - ShowAuthenticationWindow(); - } + ShowAuthenticationWindow(); } try