FileShare/Authentication/DefaultPcThirdPartyAuthorizationClient.cs
2026-05-21 20:34:06 +08:00

51 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Avalonia_Services.Services.AuthService;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Avalonia_PC.Authentication
{
/// <summary>
/// 第三方授权客户端占位实现。接入真实第三方接口时替换此服务即可。
/// </summary>
public sealed class DefaultPcThirdPartyAuthorizationClient : IPcThirdPartyAuthorizationClient
{
/// <summary>
/// 验证第三方授权码是否有效。默认实现将 "invalid" 视为授权丢失,其余视为有效。
/// </summary>
/// <param name="authorizationCode">第三方授权码。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>授权检查结果。</returns>
public Task<ThirdPartyAuthCheckResult> 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);
}
/// <summary>
/// 刷新第三方授权。默认实现总是返回 TemporaryFailure表示暂时无法刷新。
/// </summary>
/// <param name="authorizationReference">授权引用标识。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>授权检查结果。</returns>
public Task<ThirdPartyAuthCheckResult> RefreshAuthorizationAsync(
string authorizationReference,
CancellationToken cancellationToken = default)
{
if (string.Equals(authorizationReference, "invalid", StringComparison.OrdinalIgnoreCase))
{
return Task.FromResult(ThirdPartyAuthCheckResult.AuthorizationLost);
}
return Task.FromResult(ThirdPartyAuthCheckResult.TemporaryFailure);
}
}
}