Identyfikacja zalogowanego klienta (user_token)
Twój serwer podpisuje poświadczenie tożsamości klienta, dzięki czemu AI może sprawdzać zamówienia i pomagać klientom w ich składaniu.
Zanim AI sprawdzi zamówienie, musi wiedzieć, kim jest klient. Tożsamość klienta jest potwierdzana podpisem z Twojego serwera — przeglądarka nie może jej sfałszować.
Klucz podpisu znajdziesz w panelu na stronie „Integracja” (widzi go tylko właściciel), ma format whsec_.... Jest używany w obu kierunkach: Ty nim podpisujesz user_token; my nim podpisujemy wysyłane do Ciebie webhooki i zapytania o zamówienia.
Format user_token: base64url(JSON) + "." + hex(HMAC-SHA256(klucz podpisu, base64url(JSON)))
Pola JSON:
| Pole | Wymagane | Opis |
|---|---|---|
user_id | Tak | ID klienta w Twoim systemie, zwracane Ci w niezmienionej formie przy sprawdzaniu zamówienia |
exp | Tak | Czas wygaśnięcia (sekundy Unix), maksymalnie 7 dni |
name / email | Nie | Wyświetlane w panelu agenta |
Przykład w Node.js:
import crypto from "node:crypto"
function signUserToken(user, secret) {
const payload = { user_id: user.id, name: user.name, email: user.email, exp: Math.floor(Date.now() / 1000) + 3600 }
const body = Buffer.from(JSON.stringify(payload)).toString("base64url")
const mac = crypto.createHmac("sha256", secret).update(body).digest("hex")
return `${body}.${mac}`
}
Na stronie:
<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->
Możesz też nie wpisywać go na stronie, tylko dodać do skryptu data-user-token-url="/twoj-adres": przed rozpoczęciem rozmowy w oknie obsługi klienta na podstawie pliku cookie klienta wysyłane jest żądanie pod ten sam adres źródłowy, a odpowiedź to {"token": "user_token"} (jeśli klient nie jest zalogowany — {"token": null}). Gdy sklep Shopify ma zainstalowaną aplikację Yinke, okno czatu automatycznie pobiera w ten sposób tożsamość zalogowanego klienta — nie trzeba tego dodatkowo podłączać.
Czy ta strona była pomocna?
Ostatnia aktualizacja:
