Riceve e verifica i webhook di identificazione in Go (libreria standard). Aggiunga identificazione dei visitatori, bot detection e smart signals alla sua applicazione Go in pochi minuti.
Aggiunga l'SDK al suo progetto con il gestore di pacchetti che preferisce.
npm install net/httpyarn add net/httppnpm add net/httpDiventi operativo con la configurazione minima.
package mainimport ( "fmt" "io" "net/http")func main() { http.HandleFunc("/webhook/tracio", func(w http.ResponseWriter, r *http.Request) { body, _ := io.ReadAll(r.Body) // verify r.Header.Get("X-Tracio-Signature") against body, then act fmt.Println(string(body)) w.WriteHeader(http.StatusOK) }) http.ListenAndServe(":8080", nil)}Pattern pronti per la produzione con gestione degli errori, stati di caricamento e configurazione avanzata.
package mainimport ( "crypto/hmac" "crypto/sha256" "encoding/hex" "encoding/json" "io" "log" "net/http" "os" "strings")type Event struct { VisitorID string `json:"visitorId"` Bot struct { Result string `json:"result"` } `json:"bot"` Decision struct { RiskScore int `json:"riskScore"` } `json:"decision"`}// verify recomputes the HMAC-SHA256 over "<t>.<rawBody>" and compares it.func verify(body []byte, header, secret string) bool { parts := map[string]string{} for _, kv := range strings.Split(header, ",") { if p := strings.SplitN(kv, "=", 2); len(p) == 2 { parts[p[0]] = p[1] } } mac := hmac.New(sha256.New, []byte(secret)) mac.Write([]byte(parts["t"] + ".")) mac.Write(body) expected := hex.EncodeToString(mac.Sum(nil)) return hmac.Equal([]byte(expected), []byte(parts["v1"]))}func main() { secret := os.Getenv("TRACIO_WEBHOOK_SECRET") http.HandleFunc("/webhook/tracio", func(w http.ResponseWriter, r *http.Request) { body, _ := io.ReadAll(r.Body) if !verify(body, r.Header.Get("X-Tracio-Signature"), secret) { http.Error(w, "Invalid signature", http.StatusUnauthorized) return } var e Event if err := json.Unmarshal(body, &e); err != nil { http.Error(w, "Bad payload", http.StatusBadRequest) return } if e.Bot.Result == "bot" || e.Decision.RiskScore > 50 { log.Printf("flagging visitor %s (bot=%s risk=%d)", e.VisitorID, e.Bot.Result, e.Decision.RiskScore) } w.WriteHeader(http.StatusOK) }) log.Fatal(http.ListenAndServe(":8080", nil))}Tutte le opzioni disponibili per inizializzare e configurare l'SDK.
publicKeystringLa sua chiave pubblica dalla dashboard — può essere distribuita nel browser in sicurezzaendpointstringURL endpoint personalizzato per i deployment instradati tramite proxy — un URL esplicito prevale su regionregionstringRegione dati: us o eutimeoutMsnumberTimeout dell'intera chiamata getResult(), in millisecondilinkedIdstringIl suo ID account interno per l'utente autenticato, così le visite che condividono un dispositivo possono essere collegatetagstringEtichetta libera associata alla richiesta di identificazione, es. checkout o logindebugbooleanRegistra il ciclo di vita dello script e l'attività di rete nella console del browserscriptUrlstringOverride completo dell'URL dello script agent — per self-hosting o Subresource IntegrityApprofondisca con il riferimento API completo, la configurazione dei webhook e le guide avanzate.
Riferimento API completo, guide all'integrazione e best practice.
Recapito degli eventi in tempo reale, schema del payload e verifica della firma.
Configuri notifiche di eventi in tempo reale per ogni identificazione del dispositivo.
Aggiunga il fingerprinting del dispositivo alla sua applicazione Go in meno di 5 minuti.