using Avalonia_Services.Services.AuthService;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Avalonia_PC.Authentication
{
///
/// 第三方授权客户端占位实现。接入真实第三方接口时替换此服务即可。
///
public sealed class DefaultPcThirdPartyAuthorizationClient : IPcThirdPartyAuthorizationClient
{
public Task ValidateAuthorizationCodeAsync(
string authorizationCode,
CancellationToken cancellationToken = default)
{
if (string.IsNullOrWhiteSpace(authorizationCode) ||
string.Equals(authorizationCode, "invalid", StringComparison.OrdinalIgnoreCase))
{
return Task.FromResult(ThirdPartyAuthCheckResult.AuthorizationLost);
}
return Task.FromResult(ThirdPartyAuthCheckResult.Valid);
}
public Task RefreshAuthorizationAsync(
string authorizationReference,
CancellationToken cancellationToken = default)
{
if (string.Equals(authorizationReference, "invalid", StringComparison.OrdinalIgnoreCase))
{
return Task.FromResult(ThirdPartyAuthCheckResult.AuthorizationLost);
}
return Task.FromResult(ThirdPartyAuthCheckResult.TemporaryFailure);
}
}
}