识别登录顾客(user_token)
由你的服务器签名证明顾客身份,AI 才能查订单、帮顾客下单。
AI 查订单前必须知道顾客是谁。顾客身份由你的服务器签名证明,浏览器不能伪造。
签名密钥在后台「接入」页查看(只有所有者能看),格式 whsec_...。它是双向用的:你用它签 user_token;我们用它签发给你的 webhook 和订单查询请求。
user_token 的格式:base64url(JSON) + "." + hex(HMAC-SHA256(签名密钥, base64url(JSON)))
JSON 字段:
| 字段 | 必填 | 说明 |
|---|---|---|
user_id | 是 | 你系统里的顾客 ID,查订单时原样回传给你 |
exp | 是 | 过期时间(Unix 秒),最长 7 天 |
name / email | 否 | 显示在座席工作台 |
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}`
}
页面里:
<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->
也可以不写进页面,在 script 上加 data-user-token-url="/你的地址":客服窗口开对话前用顾客的 cookie 请求这个同源地址,返回 {"token": "user_token"}(没登录返回 {"token": null})。Shopify 店铺装了迎客应用后,聊天窗口自动这样取登录顾客的身份,不用另外接。
这篇文档有帮助吗?
最后更新:
