using Microsoft.Extensions.Caching.Memory; using SPMS.Application.Interfaces; namespace SPMS.Infrastructure.Services; public class InMemoryTokenStore : ITokenStore { private readonly IMemoryCache _cache; public InMemoryTokenStore(IMemoryCache cache) { _cache = cache; } public Task StoreAsync(string key, string value, TimeSpan expiry) { _cache.Set(key, value, expiry); return Task.CompletedTask; } public Task GetAsync(string key) { _cache.TryGetValue(key, out string? value); return Task.FromResult(value); } public Task RemoveAsync(string key) { _cache.Remove(key); return Task.CompletedTask; } }