Giao diện
Câu hỏi thường gặp (FAQ) — License
Câu hỏi chung
Plugin này khác gì với plugin-license-manager?
| Tiêu chí | plugin-license | plugin-license-manager |
|---|---|---|
| Vai trò | Người nhận license — cài đặt và xác minh license | Người cấp license — tạo và quản lý license cho khách hàng |
| Dùng cho | Mọi instance DigiForce cần license | Nhà phân phối phần mềm |
| Chức năng chính | Tạo request, upload license, kiểm tra trạng thái | Cấp phát license từ file request |
License key là gì? Trông như thế nào?
License key là chuỗi ký tự có format signature.encrypted_data:
- signature: Chữ ký số xác minh tính toàn vẹn
- encrypted_data: Dữ liệu license đã mã hoá (tên, features, expiry, binding...)
Server fingerprint là gì?
Server fingerprint là mã duy nhất sinh từ thông tin phần cứng (CPU, MAC address, machine ID...) của server. Mỗi máy chủ có fingerprint khác nhau. License được cấp cho một fingerprint cụ thể, không thể dùng trên server khác.
License có hết hạn không?
Có. Trường expiresAt xác định ngày hết hạn. Khi hết hạn, trạng thái chuyển sang expired. Cần liên hệ nhà cung cấp để gia hạn.
Cài đặt và cấu hình
Quy trình lấy license như thế nào?
Lỗi DOMAIN_MISMATCH khi upload license?
License bị ràng buộc domain nhưng domain hiện tại không khớp. Kiểm tra:
- Biến môi trường
APP_URLđúng domain - Domain trong license khớp với hostname trong
APP_URL - Nếu đang test local, xin license mới cho domain local
Lỗi IP_MISMATCH khi upload license?
License bị ràng buộc IP nhưng IP hiện tại không khớp. Kiểm tra:
- IP server có thay đổi không (VD: IP động)
- Nếu qua proxy, IP có thể là IP của proxy
- Xin license mới cho IP hiện tại
Lỗi "License key must be in format: signature.encrypted_data"?
License key không đúng format. Kiểm tra:
- Đã copy đầy đủ nội dung license key (không thiếu ký tự)
- Không có khoảng trắng thừa đầu/cuối
- Nội dung chứa đúng 1 dấu chấm (.) ngăn cách signature và data
Upload license thành công nhưng features không hoạt động?
Kiểm tra:
- Trạng thái license là
active(không phảiexpired) - Danh sách
featurestrong license bao gồm tính năng cần dùng - Thử restart server để đảm bảo
licenseManager.reload()hoàn tất
Câu hỏi kỹ thuật
License lưu ở đâu?
Hai nơi:
- File system:
storage/apps/{appName}/license.key(hoặcLICENSE_KEY_PATH) - Database: Collection
licenses
Xoá license có xoá sạch không?
Action removeLicense xoá cả file trên disk và bản ghi trong database, sau đó gọi licenseManager.reload().
Có thể có nhiều license trên cùng server không?
Collection licenses hỗ trợ nhiều bản ghi, nhưng plugin tìm theo serverFingerprint. Khi upload license mới cho cùng fingerprint, bản ghi cũ được cập nhật (không tạo thêm).
Docker có ảnh hưởng đến fingerprint không?
Có thể. Container Docker có thể có fingerprint khác nhau mỗi khi recreate. Plugin thu thập containerId và containerName trong request. Nên dùng volume mount cố định và machine ID ổn định.