로그인한 고객 식별(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 스토어에 Yinke 앱을 설치하면 채팅 창이 이 방식으로 로그인한 고객의 신원을 자동으로 가져오므로 따로 연동할 필요가 없습니다.

이 페이지가 도움이 되었나요?

마지막 업데이트: