#ifndef TOKEN_MANAGER_H_ #define TOKEN_MANAGER_H_ #include #include #include #include #include #include "models/models.h" #include "types/scopes.h" namespace Manager { class token_manager { public: token_manager(); Model::loginResult retrieve_token(); Model::loginResult retrieve_token(std::string_view); Model::loginResult retrieve_token(const Model::BinaryPath&); bool is_token_valid(std::string&, Scope); private: Model::auth_credentials parse_auth_credentials(std::string_view); Model::auth_credentials parse_auth_credentials(const Model::BinaryPath&); std::vector extract_scopes(const jwt::decoded_jwt&&); std::pair> fetch_auth_header(const std::string&); bool token_supports_scope(const std::vector, const std::string&&); }; } #endif