<?php namespace Slovocast\Middleware; use Odan\Session\SessionInterface; use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\RequestHandlerInterface as RequestHandler; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Http\Message\ResponseInterface as Response; use Ramsey\Uuid\Uuid; class FormKeyMiddleware implements MiddlewareInterface { public function __construct( private SessionInterface $session ) { } public function process(Request $request, RequestHandler $handler): Response { if (!$this->session->has("form_key")) { $uuid = Uuid::uuid4(); $this->session->set("form_key", $uuid->toString()); } return $handler->handle($request); } }