辨識已登入顧客(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 商店安裝迎客應用後,聊天視窗會自動這樣取得已登入顧客的身分,不用另外串接。
這頁對你有幫助嗎?
最後更新:
