private function generateToken(string $formName): string
    {
        $token = Cryptography::randomString(self::TOKEN_LENGTH);
        $csrfData = Session::getInstance()->read('__CSRF_TOKEN', []);
        $csrfData[$formName] = $token;
        Session::getInstance()->set('__CSRF_TOKEN', $csrfData);
        return $token;
    }