55 std::function<
void(
const std::string& error,
http::HttpRequest&, std::shared_ptr<http::ResponseWriter>)> on_error
66 static OAuth2 google(
const std::string& client_id,
const std::string& client_secret,
const std::string& redirect_uri);
76 static OAuth2 github(
const std::string& client_id,
const std::string& client_secret,
const std::string& redirect_uri);
80 std::string fetch_sync(
const std::string& url,
const std::string& method,
const std::string& body,
const std::string& auth_header =
"")
const;
Middleware for handling OAuth2 authentication.
Definition OAuth2.hpp:30
std::function< void(http::HttpRequest &, std::shared_ptr< http::ResponseWriter >)> callback_handler(std::function< void(const nlohmann::json &user_info, http::HttpRequest &, std::shared_ptr< http::ResponseWriter >)> on_success, std::function< void(const std::string &error, http::HttpRequest &, std::shared_ptr< http::ResponseWriter >)> on_error)
Handler to process the redirect callback, exchange the code for an access token, and fetch user info.
Definition OAuth2.cpp:83
std::function< void(http::HttpRequest &, std::shared_ptr< http::ResponseWriter >)> login_handler()
Handler to redirect the user to the OAuth2 provider's consent page.
Definition OAuth2.cpp:62
static OAuth2 google(const std::string &client_id, const std::string &client_secret, const std::string &redirect_uri)
Pre-configured factory for Google OAuth2.
Definition OAuth2.cpp:128
static OAuth2 github(const std::string &client_id, const std::string &client_secret, const std::string &redirect_uri)
Pre-configured factory for GitHub OAuth2.
Definition OAuth2.cpp:140
a class to store JSON values
Definition json.hpp:19401
Definition Compress.hpp:4
Represents an incoming HTTP request.
Definition HttpRequest.hpp:22
Configuration for OAuth2 middleware.
Definition OAuth2.hpp:16
std::string userinfo_endpoint
Definition OAuth2.hpp:22
std::string client_secret
Definition OAuth2.hpp:18
std::string redirect_uri
Definition OAuth2.hpp:19
std::string client_id
Definition OAuth2.hpp:17
std::vector< std::string > scopes
Definition OAuth2.hpp:23
std::string token_endpoint
Definition OAuth2.hpp:21
std::string authorization_endpoint
Definition OAuth2.hpp:20