ChatLink

Chat Link là một chuỗi định danh duy nhất (Unique Identifier) được gán cho một cấu hình widget cụ thể của một công ty (

Cid) trên một website (

WebsiteId

). Nó đóng vai trò như một "khóa công khai" để client (trình duyệt) có thể tải cấu hình chat.

Mặc dù code tạo Chat Link nằm ở

cs-agent-svc

(không hiển thị ở đây), nhưng dựa trên luồng dữ liệu trong

cs-chat-gateway-svc

:

  • Khi Admin cấu hình widget chat trên Dashboard, hệ thống sẽ sinh ra một

    ChatLink

    (thường là UUID hoặc chuỗi ngẫu nhiên).

  • Chat Link này được lưu trong Database liên kết với Cid,

    WebsiteId

    , và các cấu hình khác (màu sắc, lời chào, v.v.).

Quy trình hoạt động khi nhúng Chat Link vào website:

  1. Client Request:

    • Khi người dùng truy cập website có nhúng script chat, script sẽ gọi API

      (hoặc tương đương) lên

      .

    • Request gửi lên kèm theo tham số

      (lấy từ URL hoặc mã nhúng).

  2. Gateway Xử lý (

    ):

    • Hàm GetAuthWidgetConfig (trong internal/usecase/auth.go) nhận

      .

    • Nó gọi gRPC sang

      (

      ) để xác thực.

  3. Agent Service Xác thực (

    ):

    • Tìm kiếm trong DB xem

      này có tồn tại không.

    • Nếu có, trả về thông tin: Cid,

      ,

      ...

  4. Trả về Cấu hình:

    • Gateway nhận thông tin từ Agent Service.

    • Sau đó gọi tiếp GetAllSdkConfig để lấy toàn bộ cấu hình hiển thị (màu sắc, avatar bot, ngôn ngữ...).

    • Trả về cho Client để render widget chat đúng theo cấu hình của công ty.

Tóm tắt

Chat Link giống như một "tấm vé" để client lấy cấu hình chat. Thay vì phải hardcode

Cid hay

(có thể lộ thông tin nhạy cảm), Chat Link cung cấp một lớp trừu tượng an toàn và dễ quản lý. Nếu cần thu hồi quyền truy cập, chỉ cần vô hiệu hóa Chat Link đó ở phía Server.

Last updated