using System.Security.Claims; namespace Infrastructure.Jwt; /// /// Service for generating and validating JSON Web Tokens (JWTs) used for authentication. /// public interface ITokenInfrastructure { /// /// Generates a signed JWT for the given user. /// string GenerateJwt(Guid userId, string username, DateTime expiry, string secret); /// /// Validates a JWT and returns the resulting claims principal. /// /// Thrown when the token is invalid, expired, or fails validation. Task ValidateJwtAsync(string token, string secret); }