Ingelogde klant identificeren (user_token)
Je server ondertekent de identiteit van de klant, zodat de AI bestellingen kan opzoeken en de klant kan helpen bestellen.
Voordat AI een bestelling opzoekt, moet de AI weten wie de klant is. De identiteit van de klant wordt bewezen door een handtekening van jouw server; de browser kan die niet vervalsen.
De ondertekeningssleutel vind je in het dashboard op de pagina 'Integratie' (alleen de eigenaar kan die zien), met het formaat whsec_.... Je gebruikt hem in twee richtingen: jij gebruikt hem om user_token te ondertekenen; wij gebruiken hem om de webhooks en de verzoeken om bestellingen op te zoeken die naar jou worden gestuurd te ondertekenen.
Het formaat van user_token: base64url(JSON) + "." + hex(HMAC-SHA256(签名密钥, base64url(JSON)))
JSON-velden:
| Veld | Verplicht | Beschrijving |
|---|---|---|
user_id | Ja | Het klant-ID in jouw systeem; wordt bij het opzoeken van bestellingen ongewijzigd aan je teruggegeven |
exp | Ja | Vervaltijd (Unix-seconden), maximaal 7 dagen |
name / email | Nee | Wordt getoond in de werkruimte van de agent |
Node.js-voorbeeld:
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}`
}
Op de pagina:
<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->
Je kunt het ook weglaten uit de pagina en in plaats daarvan data-user-token-url="/你的地址" aan de scripttag toevoegen: voordat het supportwidget een gesprek opent, vraagt het met de cookie van de klant dit same-originadres op en verwacht het {"token": "user_token"} terug ({"token": null} als de klant niet is ingelogd). Zodra een Shopify-winkel de Yinke-app heeft geïnstalleerd, haalt het chatvenster automatisch op deze manier de identiteit van de ingelogde klant op; een aparte integratie is niet nodig.
Was deze pagina nuttig?
Laatst bijgewerkt:
