feat(CIE): Implement OIDC RP Service with login, callback, and session management
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
#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);
|
||||
};
|
||||
Reference in New Issue
Block a user