using System; using System.Threading.Tasks; using GameAuthApi.Models; using Microsoft.Extensions.Configuration; using MongoDB.Driver; namespace GameAuthApi.Services; public class BlacklistService { private readonly IMongoCollection _blacklist; public BlacklistService(IConfiguration config) { var client = new MongoClient(config["MongoDB:ConnectionString"]); var db = client.GetDatabase(config["MongoDB:DatabaseName"]); _blacklist = db.GetCollection("BlacklistedTokens"); } public async Task AddToBlacklistAsync(string token, DateTime expiry) { var entry = new BlacklistedToken { Token = token, Expiry = expiry }; await _blacklist.InsertOneAsync(entry); } public async Task IsTokenBlacklistedAsync(string token) { var exists = await _blacklist.Find(x => x.Token == token && x.Expiry > DateTime.UtcNow).FirstOrDefaultAsync(); return exists != null; } }