#pragma once #include #include namespace bnet { using TokenText = std::string; class Token { public: explicit Token(); std::optional text() const; std::optional expirationTime() const; Token &setText(const TokenText &iTokenText); Token &setLifetime(const std::chrono::seconds &iLifetime); Token &setExpirationTime(const std::chrono::seconds &iExpirationTime); bool isExpired(); private: std::optional _tokenText; std::chrono::seconds _expirationTime; }; namespace { auto currentTime = [] { return std::chrono::duration_cast( std::chrono::steady_clock::now().time_since_epoch()); }; } // namespace } // namespace bnet