@cnv-vn/track 0.3.0-beta.3 → 0.3.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -716,18 +716,28 @@ interface ZaloQrLoginResult {
716
716
  /** Điểm kinh nghiệm/tích luỹ hiện tại (nếu có). */
717
717
  xp?: number;
718
718
  /**
719
- * JWT HẸP QUYỀN, sống 24h — dùng DUY NHẤT để gọi lại `GET {endpoint}/panel/session` khôi phục
720
- * trạng thái Member sau khi khách F5 lại trang, KHÁC HẲN apiToken/loginToken thật (365 ngày, đã
721
- * bị chặn không trả về client — xem javadoc trên). An toàn hơn hẳn token thật vì: hẹp quyền (chỉ
722
- * verify được ở đúng 1 endpoint này), sống ngắn (24h), và khoá ký riêng theo từng project — lộ
723
- * token này chỉ lộ đúng tên/hạng/điểm của 1 khách, không dùng được ở bất kỳ API nào khác trong hệ
724
- * sinh thái CNV. `panel.ts` tự lưu 2 field này vào `localStorage` để khôi phục Member state lúc
725
- * mở lại trang — integrator dùng `loginWithZalo()` trực tiếp (không qua Panel) có thể tự làm
726
- * tương tự nếu muốn hành vi "nhớ đăng nhập" giống vậy.
719
+ * JWT HẸP QUYỀN, sống 30 PHÚT — dùng để gọi nhóm `{endpoint}/panel/*` (khôi phục Member sau F5,
720
+ * điểm/ưu đãi/đổi điểm), KHÁC HẲN apiToken/loginToken thật (đã bị chặn không trả về client — xem
721
+ * javadoc trên). An toàn hơn hẳn token thật vì: hẹp quyền, sống rất ngắn, và khoá ký riêng theo
722
+ * từng project — lộ token này chỉ lộ đúng tên/hạng/điểm của 1 khách, không dùng được ở bất kỳ API
723
+ * nào khác trong hệ sinh thái CNV.
724
+ *
725
+ * 30 phút KHÔNG có nghĩa khách phải quét lại QR mỗi 30 phút: `panel.ts` tự gia hạn trước hạn qua
726
+ * `POST {endpoint}/panel/session/refresh`, và cả chuỗi gia hạn có trần 24h kể từ lúc quét QR.
727
+ * Integrator dùng `loginWithZalo()` trực tiếp (không qua Panel) muốn hành vi "nhớ đăng nhập"
728
+ * giống vậy thì phải TỰ gia hạn — token này để yên là chết sau 30 phút.
727
729
  */
728
730
  panelSessionToken?: string;
729
731
  /** Epoch-ms hết hạn của {@link panelSessionToken} — so `Date.now() > panelSessionExp` không cần decode JWT. */
730
732
  panelSessionExp?: number;
733
+ /**
734
+ * Thời lượng còn sống của {@link panelSessionToken}, tính bằng ms kể từ lúc server phát.
735
+ *
736
+ * Dùng field này thay cho {@link panelSessionExp} bất cứ khi nào có: mốc tuyệt đối chỉ đúng nếu
737
+ * đồng hồ máy khách đúng, còn thời lượng thì cùng hệ quy chiếu với `Date.now()` của chính máy đó —
738
+ * quan trọng vì TTL chỉ 30 phút, máy lệch giờ nửa tiếng là tự đăng xuất ngay khi vừa đăng nhập.
739
+ */
740
+ panelSessionExpiresInMs?: number;
731
741
  }
732
742
  /**
733
743
  * Phiên QR-login đang chờ người dùng quét. SDK KHÔNG tự vẽ QR — host page tự
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cnv-vn/track",
3
- "version": "0.3.0-beta.3",
3
+ "version": "0.3.0-beta.6",
4
4
  "description": "CNV Tracking SDK — lightweight, async-first web analytics tracker (<30KB gzipped).",
5
5
  "keywords": [
6
6
  "analytics",