using ROLAC.API.Entities; namespace ROLAC.API.Services; public interface ITokenService { /// Generates a signed HS256 JWT containing userId, email, and roles claims. string GenerateAccessToken(AppUser user, IList roles); /// Generates a cryptographically-random 64-byte base64 string (the raw token value). string GenerateRefreshToken(); /// Returns the SHA-256 hex hash of the raw token. Always hash before storing to DB. string HashToken(string rawToken); }