Force users to authenticate in Playnite plugin. More graceful handling of validating connections.
This commit is contained in:
parent
55ab125c80
commit
b7f4141175
3 changed files with 18 additions and 17 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -61,28 +61,18 @@ namespace LANCommander.PlaynitePlugin
|
|||
}
|
||||
}
|
||||
|
||||
public bool ValidateConnection()
|
||||
{
|
||||
return LANCommander.ValidateToken(LANCommander.Token);
|
||||
}
|
||||
|
||||
public override IEnumerable<GameMetadata> GetGames(LibraryGetGamesArgs args)
|
||||
{
|
||||
var gameMetadata = new List<GameMetadata>();
|
||||
|
||||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue