feat: Integrate CIE authentication flow

This commit is contained in:
gabdevele
2026-06-17 12:53:16 +02:00 Unverified
parent bb7ed18539
commit 6cbdf6462d
20 changed files with 946 additions and 15 deletions
+31 -1
View File
@@ -1,5 +1,9 @@
#include "common/Http.h"
#include <drogon/HttpRequest.h>
#include <sstream>
namespace visione::http
{
drogon::HttpResponsePtr json(Json::Value body, drogon::HttpStatusCode status)
@@ -22,6 +26,14 @@ drogon::HttpResponsePtr error(const std::string &code,
return json(std::move(body), status);
}
drogon::HttpResponsePtr redirect(const std::string &url,
drogon::HttpStatusCode status)
{
auto response = drogon::HttpResponse::newRedirectionResponse(url);
response->setStatusCode(status);
return response;
}
Json::Value requireJson(const drogon::HttpRequestPtr &request)
{
const auto &body = request->getJsonObject();
@@ -31,5 +43,23 @@ Json::Value requireJson(const drogon::HttpRequestPtr &request)
}
return *body;
}
} // namespace visione::http
Json::Value parseJsonBody(const std::string &body)
{
if (body.empty())
{
return Json::Value(Json::nullValue);
}
Json::CharReaderBuilder builder;
builder["collectComments"] = false;
std::string errors;
Json::Value parsed;
std::istringstream stream(body);
if (!Json::parseFromStream(builder, stream, &parsed, &errors))
{
return Json::Value(Json::nullValue);
}
return parsed;
}
} // namespace visione::http