Files
icarus/include/managers/token_manager.h
T
2019-08-20 22:45:25 -04:00

33 lines
718 B
C++

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