Vue.js (With Axios)

import axios from "axios";

axios.interceptors.request.use((config) => {
  const securityToken = localStorage.getItem("x-security-token") || "";
  config.headers["x-security-token"] = securityToken;
  config.headers["x-api-key"] = import.meta.env.VITE_CONTROL_API_KEY; // Set your API Key in an .ENV file
  return config;
});

// Control API Middleware-functie
async function controlApiMiddleware(payload) {
  try {
    const response = await axios.post("https://app.qubeguard.com/control", payload);

    if (response.status !== 200 || response.data.error) {
      throw new Error("Request blocked by Control API");
    }

    return response.data;
  } catch (error) {
    console.error("Control API error:", error);
    throw error;
  }
}

// Gebruik in een Vue component
export async function secureRequest(endpoint, payload) {
  await controlApiMiddleware(payload); // Eerst validatie
  return axios.post(endpoint, payload);
}

Last updated