add all
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using IchniOnline.Online.Models;
|
||||
using IchniOnline.Online.Network.Models;
|
||||
using TapSDK.Login;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -15,15 +16,7 @@ namespace IchniOnline.Online.Logic
|
||||
/// <summary>
|
||||
/// 本地是否存在有效的登录缓存
|
||||
/// </summary>
|
||||
public static bool HasCachedLogin
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!ES3.KeyExists(ES3_KEY)) return false;
|
||||
var data = ES3.Load<LoginCacheData>(ES3_KEY);
|
||||
return data != null && data.IsValid;
|
||||
}
|
||||
}
|
||||
public static bool HasCachedLogin => HasValidSession;
|
||||
|
||||
/// <summary>
|
||||
/// 获取缓存的登录数据,无缓存返回 null
|
||||
@@ -38,7 +31,17 @@ namespace IchniOnline.Online.Logic
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将 TapTap 登录结果写入本地缓存
|
||||
/// 缓存的 JWT 令牌,无缓存或无会话返回 null
|
||||
/// </summary>
|
||||
public static string CachedJwtToken => CachedData?.jwtToken;
|
||||
|
||||
/// <summary>
|
||||
/// 是否存在有效的服务端会话(JWT 令牌存在且 hasServerSession 为 true)
|
||||
/// </summary>
|
||||
public static bool HasValidSession => CachedData?.IsValid ?? false;
|
||||
|
||||
/// <summary>
|
||||
/// 将 TapTap 登录结果写入本地缓存,保留已有的服务端会话数据
|
||||
/// </summary>
|
||||
public static void SaveFromTapTapAccount(TapTapAccount account)
|
||||
{
|
||||
@@ -48,18 +51,68 @@ namespace IchniOnline.Online.Logic
|
||||
return;
|
||||
}
|
||||
|
||||
var data = new LoginCacheData(
|
||||
account.openId,
|
||||
account.unionId,
|
||||
account.name,
|
||||
account.avatar,
|
||||
account.email
|
||||
);
|
||||
LoginCacheData data;
|
||||
if (ES3.KeyExists(ES3_KEY))
|
||||
{
|
||||
data = ES3.Load<LoginCacheData>(ES3_KEY) ?? new LoginCacheData();
|
||||
}
|
||||
else
|
||||
{
|
||||
data = new LoginCacheData();
|
||||
}
|
||||
|
||||
data.openId = account.openId;
|
||||
data.unionId = account.unionId;
|
||||
data.name = account.name;
|
||||
data.avatar = account.avatar;
|
||||
data.email = account.email;
|
||||
|
||||
ES3.Save(ES3_KEY, data);
|
||||
Debug.Log($"[LoginCacheManager] 已缓存登录数据,openId={data.openId}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存服务端认证会话(JWT + 用户信息),保留已有的 TapTap 数据
|
||||
/// </summary>
|
||||
public static void SaveAuthSession(string jwtToken, LoginResponseDto response)
|
||||
{
|
||||
if (string.IsNullOrEmpty(jwtToken) || response == null)
|
||||
{
|
||||
Debug.LogWarning("[LoginCacheManager] jwtToken 或 response 为 null,跳过缓存");
|
||||
return;
|
||||
}
|
||||
|
||||
LoginCacheData data;
|
||||
if (ES3.KeyExists(ES3_KEY))
|
||||
{
|
||||
data = ES3.Load<LoginCacheData>(ES3_KEY) ?? new LoginCacheData();
|
||||
}
|
||||
else
|
||||
{
|
||||
data = new LoginCacheData();
|
||||
}
|
||||
|
||||
data.UpdateFromServerResponse(response);
|
||||
|
||||
ES3.Save(ES3_KEY, data);
|
||||
Debug.Log($"[LoginCacheManager] 已缓存服务端会话,userId={data.userId}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清除服务端会话数据,保留 TapTap 原始数据
|
||||
/// </summary>
|
||||
public static void ClearSession()
|
||||
{
|
||||
if (!ES3.KeyExists(ES3_KEY)) return;
|
||||
|
||||
var data = ES3.Load<LoginCacheData>(ES3_KEY);
|
||||
if (data == null) return;
|
||||
|
||||
data.ClearServerSession();
|
||||
ES3.Save(ES3_KEY, data);
|
||||
Debug.Log("[LoginCacheManager] 已清除服务端会话,保留 TapTap 数据");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写入模拟数据(供编辑器工具使用)
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user