Nhận diện khách đã đăng nhập (user_token)
Máy chủ của bạn ký xác thực danh tính khách, để AI tra cứu đơn hàng và giúp khách đặt hàng.
AI phải biết khách hàng là ai trước khi tra cứu đơn hàng. Danh tính khách hàng được chứng minh bằng chữ ký từ máy chủ của bạn; trình duyệt không thể giả mạo.
Khóa ký xem ở trang 「Kết nối」 trong bảng điều khiển (chỉ chủ sở hữu mới xem được), định dạng whsec_.... Nó được dùng theo cả hai chiều: bạn dùng nó để ký user_token; chúng tôi dùng nó để ký webhook và các yêu cầu tra cứu đơn hàng gửi đến bạn.
Định dạng của user_token: base64url(JSON) + "." + hex(HMAC-SHA256(签名密钥, base64url(JSON)))
Các trường JSON:
| Trường | Bắt buộc | Mô tả |
|---|---|---|
user_id | Có | ID khách hàng trong hệ thống của bạn, được trả lại nguyên vẹn cho bạn khi tra cứu đơn hàng |
exp | Có | Thời gian hết hạn (giây Unix), tối đa 7 ngày |
name / email | Không | Hiển thị trong bảng làm việc của nhân viên hỗ trợ |
Ví dụ 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}`
}
Trong trang:
<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->
Cũng có thể không ghi vào trang mà thêm data-user-token-url="/你的地址" vào script: trước khi cửa sổ chat hỗ trợ mở cuộc trò chuyện, nó dùng cookie của khách hàng để gửi yêu cầu đến địa chỉ cùng origin này, trả về {"token": "user_token"} (nếu chưa đăng nhập, trả về {"token": null}). Sau khi cửa hàng Shopify cài ứng dụng Yinke, cửa sổ chat sẽ tự động lấy danh tính của khách hàng đã đăng nhập theo cách này, không cần tích hợp thêm.
Trang này có hữu ích không?
Cập nhật lần cuối:
