60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
|
|
/****************************************************
|
|||
|
|
文件:RemoteServicesWithAuth.cs
|
|||
|
|
作者:xosmo_
|
|||
|
|
邮箱:
|
|||
|
|
日期:2025/3/31 14:39:5
|
|||
|
|
功能:
|
|||
|
|
*****************************************************/
|
|||
|
|
|
|||
|
|
using YooAsset;
|
|||
|
|
using System.Collections;
|
|||
|
|
using Stary.Evo;
|
|||
|
|
using UnityEngine.Networking;
|
|||
|
|
|
|||
|
|
public class RemoteServicesWithAuth : IRemoteServices
|
|||
|
|
{
|
|||
|
|
private readonly string _defaultHostServer;
|
|||
|
|
private readonly string _fallbackHostServer;
|
|||
|
|
private string _authToken;
|
|||
|
|
private string _authServiceUrl;
|
|||
|
|
|
|||
|
|
public string CurrentToken { get; private set; }
|
|||
|
|
|
|||
|
|
public RemoteServicesWithAuth(string defaultHostServer,
|
|||
|
|
string fallbackHostServer,
|
|||
|
|
string authToken,
|
|||
|
|
string authServiceUrl)
|
|||
|
|
{
|
|||
|
|
_defaultHostServer = defaultHostServer;
|
|||
|
|
_fallbackHostServer = fallbackHostServer;
|
|||
|
|
_authToken = authToken;
|
|||
|
|
_authServiceUrl = authServiceUrl;
|
|||
|
|
RefreshToken();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void RefreshToken()
|
|||
|
|
{
|
|||
|
|
// 这里实现具体的token刷新逻辑
|
|||
|
|
CurrentToken = _authToken; // 简单示例直接使用初始token
|
|||
|
|
// 实际项目应该通过authServiceUrl获取新token
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
string IRemoteServices.GetRemoteMainURL(string fileName)
|
|||
|
|
{
|
|||
|
|
// 在原始URL后附加鉴权参数
|
|||
|
|
return $"{_defaultHostServer}/{fileName}?token={CurrentToken}";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string GetRemoteFallbackURL(string fileName)
|
|||
|
|
{
|
|||
|
|
return $"{_fallbackHostServer}/{fileName}?token={CurrentToken}";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// UnityWebRequest CreateRequest(string url)
|
|||
|
|
// {
|
|||
|
|
// var request = base.CreateRequest(url);
|
|||
|
|
// request.SetRequestHeader("Authorization", $"Bearer {CurrentToken}");
|
|||
|
|
// return request;
|
|||
|
|
// }
|
|||
|
|
}
|