#pragma once #include class OidcController : public drogon::HttpController { public: METHOD_LIST_BEGIN ADD_METHOD_TO(OidcController::startCieLogin, "/api/v1/auth/cie/start", drogon::Post); ADD_METHOD_TO(OidcController::cieCallback, "/api/v1/auth/cie/callback", drogon::Get); ADD_METHOD_TO(OidcController::cieSessionStatus, "/api/v1/auth/cie/session/{1}", drogon::Get); ADD_METHOD_TO(OidcController::entityConfiguration, "/oidc/rp/.well-known/openid-federation", drogon::Get); ADD_METHOD_TO(OidcController::resolveEntityStatement, "/oidc/rp/resolve", drogon::Get); ADD_METHOD_TO(OidcController::jwks, "/oidc/rp/jwks.json", drogon::Get); METHOD_LIST_END void startCieLogin( const drogon::HttpRequestPtr &req, std::function &&callback); void cieCallback( const drogon::HttpRequestPtr &req, std::function &&callback); void cieSessionStatus( const drogon::HttpRequestPtr &req, std::function &&callback, std::string state); void entityConfiguration( const drogon::HttpRequestPtr &req, std::function &&callback); void resolveEntityStatement( const drogon::HttpRequestPtr &req, std::function &&callback); void jwks(const drogon::HttpRequestPtr &req, std::function &&callback); };