Files
backend/controllers/OidcController.h
T

48 lines
1.8 KiB
C++

#pragma once
#include <drogon/HttpController.h>
class OidcController : public drogon::HttpController<OidcController>
{
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<void(const drogon::HttpResponsePtr &)> &&callback);
void cieCallback(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void cieSessionStatus(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback,
std::string state);
void entityConfiguration(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void resolveEntityStatement(
const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
void jwks(const drogon::HttpRequestPtr &req,
std::function<void(const drogon::HttpResponsePtr &)> &&callback);
};