88 lines
2.0 KiB
C#
88 lines
2.0 KiB
C#
using System;
|
|
using Cysharp.Threading.Tasks;
|
|
|
|
namespace BITKit.Auth
|
|
{
|
|
/// <summary>
|
|
/// 授权服务
|
|
/// </summary>
|
|
public interface IAuthService
|
|
{
|
|
/// <summary>
|
|
/// 是否已授权
|
|
/// </summary>
|
|
bool IsAuthorized { get; }
|
|
/// <summary>
|
|
/// 是否正在授权
|
|
/// </summary>
|
|
bool IsAuthorizing { get; }
|
|
/// <summary>
|
|
/// 异步开始授权
|
|
/// </summary>
|
|
/// <param name="token">令牌</param>
|
|
UniTask AuthorizeAsync(string token);
|
|
/// <summary>
|
|
/// 异步取消授权
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
UniTask CancelAuthorizationAsync();
|
|
/// <summary>
|
|
/// 开始授权的回调
|
|
/// </summary>
|
|
event Action<string> OnAuthorize;
|
|
/// <summary>
|
|
/// 已授权的回调
|
|
/// </summary>
|
|
event Action<string> OnAuthorized;
|
|
/// <summary>
|
|
/// 取消授权的回调
|
|
/// </summary>
|
|
event Action<string> UnAuthorize;
|
|
/// <summary>
|
|
/// 授权失败的回调
|
|
/// </summary>
|
|
event Action<string> OnAuthorizeFailure;
|
|
}
|
|
public abstract class AuthServiceImplement:IAuthService
|
|
{
|
|
protected abstract IAuthService service { get; }
|
|
bool IAuthService.IsAuthorized => service.IsAuthorized;
|
|
|
|
bool IAuthService.IsAuthorizing => service.IsAuthorizing;
|
|
|
|
UniTask IAuthService.AuthorizeAsync(string token)
|
|
{
|
|
return service.AuthorizeAsync(token);
|
|
}
|
|
|
|
UniTask IAuthService.CancelAuthorizationAsync()
|
|
{
|
|
return service.CancelAuthorizationAsync();
|
|
}
|
|
|
|
event Action<string> IAuthService.OnAuthorize
|
|
{
|
|
add => service.OnAuthorize += value;
|
|
remove => service.OnAuthorize -= value;
|
|
}
|
|
|
|
event Action<string> IAuthService.OnAuthorized
|
|
{
|
|
add => service.OnAuthorized += value;
|
|
remove => service.OnAuthorized -= value;
|
|
}
|
|
|
|
event Action<string> IAuthService.UnAuthorize
|
|
{
|
|
add => service.UnAuthorize += value;
|
|
remove => service.UnAuthorize -= value;
|
|
}
|
|
|
|
event Action<string> IAuthService.OnAuthorizeFailure
|
|
{
|
|
add => service.OnAuthorizeFailure += value;
|
|
remove => service.OnAuthorizeFailure -= value;
|
|
}
|
|
}
|
|
}
|