3#include <drogon/HttpAppFramework.h>
4#include <drogon/HttpFilter.h>
5#include <jwt-cpp/jwt.h>
6#include <jwt-cpp/traits/nlohmann-json/traits.h>
7#include "sql-models/Users.h"
10using namespace drogon;
11using nlohmann_verifier =
12 jwt::verifier<jwt::default_clock, jwt::traits::nlohmann_json>;
26 void doFilter(
const HttpRequestPtr &req,
28 FilterChainCallback &&fccb)
override;
32 std::string algorithm;
35 std::string public_key;
38 static std::string
get_user_id(
const HttpRequestPtr &);
41 std::optional<nlohmann_verifier> verifier;
43 static std::string extract_token_from_header(
44 const std::string &auth_header);
46 mutable MAPPER_TYPE(drogon_model::cavoke_orm::Users) mp_users =
47 MAPPER_FOR(drogon_model::cavoke_orm::Users);
49 void register_user(
const std::string &)
const;
51 static const std::string AUTHORIZATION_HEADER;
52 static const std::string TOKEN_PREFIX;
53 static const std::string SETTINGS_KEYNAME;
54 static const std::string USER_ID_NAME;
static std::string get_user_id(const HttpRequestPtr &)
Acquires user_id parsed during AuthFilter's execution.