Identifier les clients connectés (user_token)

La signature de votre serveur prouve l'identité du client ; l'AI peut alors consulter ses commandes et l'aider à commander.

L'IA doit savoir qui est le client avant de pouvoir consulter une commande. L'identité du client est prouvée par une signature de votre serveur ; le navigateur ne peut pas la falsifier.

La clé de signature se trouve dans la page « Intégration » du back-office (visible uniquement par le propriétaire), au format whsec_.... Elle sert dans les deux sens : vous l'utilisez pour signer le user_token ; nous l'utilisons pour signer les webhooks et les requêtes de consultation de commandes que nous vous envoyons.

Format du user_token : base64url(JSON) + "." + hex(HMAC-SHA256(签名密钥, base64url(JSON)))

Champs JSON :

ChampObligatoireDescription
user_idOuiL'ID du client dans votre système, renvoyé tel quel lors de la consultation de commande
expOuiDate d'expiration (secondes Unix), 7 jours maximum
name / emailNonAffichés dans l'espace de travail des agents

Exemple 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}`
}

Dans la page :

<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->

Vous pouvez aussi ne pas l'inscrire dans la page et ajouter data-user-token-url="/你的地址" sur le script : avant d'ouvrir une conversation, la fenêtre de chat appelle cette adresse de même origine avec le cookie du client, qui renvoie {"token": "user_token"} (renvoie {"token": null} si le client n'est pas connecté). Une fois l'application Yinke installée sur une boutique Shopify, la fenêtre de chat récupère automatiquement l'identité du client connecté de cette manière, sans intégration supplémentaire.

Cette page vous a-t-elle été utile ?

Dernière mise à jour: