#pragma once #include #include namespace scar { class JWT { public: // Generate JWT token for username with expiration static std::string generate(const std::string& username, const std::string& secret, std::chrono::seconds expiration = std::chrono::hours(24)); // Verify and decode JWT token static bool verify(const std::string& token, const std::string& secret); // Extract username from token (without verification) static std::string extractUsername(const std::string& token); // Check if token is expired static bool isExpired(const std::string& token); private: static constexpr const char* ISSUER = "scarchat-server"; }; } // namespace scar