using Atomx.Admin.Client.Services; using Microsoft.JSInterop; namespace Atomx.Admin.Client.Utils { /// /// WASM 客户端下的 Token 提供器(实现共享的 ITokenProvider) /// - 直接从浏览器 storage(localStorage/sessionStorage)读取 access token /// - 设计为轻量,仅负责读取 token;刷新逻辑放在 AuthHeaderHandler / 后端 Refresh 接口 /// public class ClientTokenProvider : ITokenProvider { private readonly IJSRuntime _jsRuntime; public ClientTokenProvider(IJSRuntime jsRuntime) { _jsRuntime = jsRuntime; } public async Task GetTokenAsync() { try { return await _jsRuntime.InvokeAsync("localStorage.getItem", "accessToken"); } catch { return null; } } public async Task IsTokenValidAsync() { var token = await GetTokenAsync(); return !string.IsNullOrEmpty(token); } } }