diff --git a/cp/app/Controllers/ProfileController.php b/cp/app/Controllers/ProfileController.php index d8e54b2..4484dce 100644 --- a/cp/app/Controllers/ProfileController.php +++ b/cp/app/Controllers/ProfileController.php @@ -266,4 +266,30 @@ class ProfileController extends Controller Auth::logoutEverywhereElse(); } + public function tokenWell(Request $request, Response $response) + { + global $container; + $csrf = $container->get('csrf'); + + // Get CSRF token name and value + $csrfTokenName = $csrf->getTokenName(); + $csrfTokenValue = $csrf->getTokenValue(); + + // Check if tokens exist + if (!$csrfTokenName || !$csrfTokenValue) { + $errorResponse = json_encode(['error' => 'CSRF tokens not found']); + $response->getBody()->write($errorResponse); + return $response->withHeader('Content-Type', 'application/json')->withStatus(400); + } + + // Create JSON response in the expected format + $csrfResponse = json_encode([ + $csrfTokenName => $csrfTokenValue + ]); + + // Write response body and return with JSON header + $response->getBody()->write($csrfResponse); + return $response->withHeader('Content-Type', 'application/json')->withStatus(200); + } + } \ No newline at end of file diff --git a/cp/bootstrap/app.php b/cp/bootstrap/app.php index 6325d11..94b13dd 100644 --- a/cp/bootstrap/app.php +++ b/cp/bootstrap/app.php @@ -302,6 +302,10 @@ $csrfMiddleware = function ($request, $handler) use ($container) { if ($path && $path === '/clear-cache') { return $handler->handle($request); } + if ($path && $path === '/token-well') { + $csrf->generateToken(); + return $handler->handle($request); + } // If not skipped, apply the CSRF Guard return $csrf->process($request, $handler); diff --git a/cp/resources/views/admin/domains/createApplication.twig b/cp/resources/views/admin/domains/createApplication.twig index 8751690..6fccd72 100644 --- a/cp/resources/views/admin/domains/createApplication.twig +++ b/cp/resources/views/admin/domains/createApplication.twig @@ -491,114 +491,108 @@