Widget für Ihre Seite
Jeśli wolisz nie wołać API z backendu — wklej jeden <script>, a pole pliku samo wywoła moderację z przeglądarki użytkownika.
1. Utwórz klucz widgetu i dodaj domeny
W panelu → Widget na stronę → Nowy klucz widgetu (pk_live_…). Dodaj domeny, na których widget ma działać — zadziała tylko z tych domen (sprawdzamy nagłówek Origin).
2. Wklej snippet
<script src="https://modwall.dev/widget.js" data-site-key="pk_live_..."></script> <input type="file" data-modwall>
Pole data-modwall samo wyśle wybrany plik i wyemituje zdarzenie z wynikiem:
document.addEventListener("modwall:result", function (e) {
console.log(e.detail); // { scores, decision, threshold, _status }
if (e.detail.decision === "block") {
// np. zablokuj wysyłkę formularza
}
});
API JavaScript
Globalny obiekt Modwall:
const res = await Modwall.moderate(fileInput.files[0]);
// res = { scores: {nsfw, safe}, decision, threshold, _status }
if (res.decision !== "allow") {
alert("Obraz nie przeszedł moderacji.");
}
Bezpieczeństwo
Klucz pk_live_ jest jawny (widoczny w kodzie strony). Chronimy go allowlistą domen — żądanie z innej domeny dostaje 403. To ochrona „przeglądarkowa": zatrzymuje użycie z cudzych stron, ale determinowany atakujący wysyłający żądanie spoza przeglądarki (np. curl z podrobionym Origin) ją obejdzie.
Dlatego krytyczne decyzje egzekwuj po stronie serwera przez API sk_live_. Widget jest do UX (szybki feedback przy uploadzie), serwerowe API jest kręgosłupem compliance.
Endpoint (pod maską)
/widget/moderateBody multipart/form-data: site_key + image (opcjonalnie reference, image_url). Zwraca CORS-owe nagłówki dla dozwolonych domen. Odpowiedź jak w /v1/moderate.