veil

Chiama Veil da un sito

Usa fetch direttamente per le letture pubbliche e la verifica dei messaggi.

Gli endpoint CORS pubblici accettano richieste da qualsiasi origine senza credenziali. Usa credentials impostato a omit se il tuo wrapper fetch include normalmente i cookie. La Content Security Policy del tuo sito deve consentire connessioni a https://veil.rip.

javascript
const options = { credentials: "omit" };
const response = await fetch("https://veil.rip/o/veil.json", options);
if (!response.ok) throw new Error(`Veil replied ${response.status}`);
const card = await response.json();

Invia un blocco firma#

javascript
const headers = new Headers();
headers.set("Content-Type", "application/json");
const response = await fetch("https://veil.rip/v1/verify", {
  method: "POST",
  credentials: "omit",
  headers,
  body: JSON.stringify({ block })
});
const verdict = await response.json();

Il browser gestisce il preflight OPTIONS. Un preflight supportato restituisce 204 e può essere conservato per 600 secondi. Le intestazioni ammesse sono Accept, Content-Type, Cache-Control, If-None-Match e If-Modified-Since. JavaScript può leggere Date, ETag quando presente e Retry-After.

Gestisci gli errori#

Leggi lo stato HTTP prima di usare il corpo. Gli errori pubblici di validazione e i limiti sono JSON leggibili. Un endpoint privato o una richiesta con credenziali non supera il controllo CORS del browser. Le scritture firmate, i codici di accoppiamento e gli stati delle prove degli account hanno requisiti di accesso separati.

Un’immagine o uno script in cache può conservare le intestazioni precedenti all’attivazione di CORS. Un URL versionato richiede una risposta nuova. Le API JSON pubbliche e la verifica dei messaggi non usano quella cache delle risorse statiche.