Primește și verifică webhook-urile de identificare în Go (biblioteca standard). Adaugă identificarea vizitatorilor, detecția boților și smart signals în aplicația ta Go în câteva minute.
Adaugă SDK-ul în proiectul tău cu managerul de pachete preferat.
npm install net/httpyarn add net/httppnpm add net/httpDevii operațional cu configurarea minimă.
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)}Tipare gata de producție, cu gestionarea erorilor, stări de încărcare și configurare avansată.
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))}Toate opțiunile disponibile pentru inițializarea și configurarea SDK-ului.
publicKeystringCheia ta publică din dashboard — sigură de folosit în browserendpointstringURL de endpoint personalizat pentru implementările direcționate prin proxy — un URL explicit are prioritate față de regiuneregionstringRegiunea datelor: us sau eutimeoutMsnumberTimeout pentru întregul apel getResult(), în milisecundelinkedIdstringID-ul tău intern de cont pentru utilizatorul autentificat, ca vizitele de pe același dispozitiv să poată fi corelatetagstringEtichetă liberă atașată cererii de identificare, de ex. checkout sau logindebugbooleanÎnregistrează ciclul de viață al scriptului și activitatea de rețea în consola browseruluiscriptUrlstringSuprascriere completă a URL-ului scriptului agent — pentru self-hosting sau Subresource IntegrityAprofundează cu referința API completă, configurarea webhookurilor și ghiduri avansate.
Referință API completă, ghiduri de integrare și bune practici.
Livrarea evenimentelor în timp real, schema payloadului și verificarea semnăturii.
Configurează notificări în timp real pentru fiecare identificare a unui dispozitiv.
Adaugă fingerprinting de dispozitiv în aplicația ta Go în mai puțin de 5 minute.