许可证
许可证是LicenseChain的核心。每个许可证都代表用户使用您的软件的有效权限。
什么是许可证?
A 执照 LicenseChain 中是一种数字许可,授予用户使用您的软件的权利。 每个许可证都包含有关用户、他们拥有的计划、到期时间以及他们可以访问哪些功能的信息。
许可证是加密安全的,可以通过我们的 API 实时验证。 它们支持各种许可证类型,包括永久许可证、基于订阅的许可证和试用许可证。
许可证结构
核心特性
- 许可证密钥 - 唯一标识符
- 计划 - 许可级别(免费、专业、商业、企业)
- 验证类型 - 验证级别(基础、高级、企业)
- 地位 - 当前状态(活动、过期、暂停)
- 到期日 - 许可证到期时
用户信息
- 发给 - 客户姓名或公司
- 电子邮件 - 客户电子邮件地址
- 特征 - 可用的特性和功能
- 元数据 - 自定义数据和标签
许可证类型
永久许可
一次性购买许可证,永不过期。非常适合桌面应用程序。
- 无有效期
- 一次性付款
- 终身访问
- 非常适合桌面应用程序
订阅许可证
需要定期更新的循环许可证。非常适合 SaaS 应用程序。
- 每月/每年续订
- 自动过期
- 定期计费
- 非常适合 SaaS 应用程序
试用许可证
用于评估目的的有时间限制的许可证。非常适合先试后买。
- 期限有限(7-30 天)
- 全功能访问
- 自动转换
- 非常适合演示
许可证验证
实时验证
以低于 100 毫秒的响应时间实时验证许可证。使用 POST /v1/licenses/verify 与身体 { "key": "LICENSE-KEY" }。选修的 hwuid (或者 hardwareId) 启用硬件绑定:当许可证已绑定设备时,提供的 hwuid 必须匹配,否则响应为 valid: false 和 reason: "hardware_id_mismatch".
// License verification example // Verify license key with client // Check if license is valid and handle accordingly
硬件绑定 (HWUID)
可选硬件/设备绑定 (HWUID) 将许可证限制为特定设备。发送 hwuid 在 POST /v1/licenses/verify (例如,从您的 SDK getHardwareId())。如果许可证尚未绑定设备,则首次使用 hwuid 成功验证将执行首次使用绑定。使用 POST /v1/licenses/bind-hardware (经过验证)显式绑定,并且 POST /v1/licenses/validate-hardware 验证密钥+硬件ID。所有官方SDK均支持可选 hwuid 在验证中,使用 HMAC-SHA256 进行恒定时间比较来进行 Webhook 签名验证。
许可证断言令牌(离线验证)
上线后 POST /v1/licenses/verify,核心 API 可能会返回 license_token (RS256智威汤逊), license_token_expires_at, 和 license_jwks_uri 在 API 上配置签名密钥时。安全地存储令牌,使用验证其签名 GET /v1/licenses/jwks, 要求 token_use === "licensechain_license_v1", 证实 exp 并且(当您颁发每个应用程序许可证时) aud 与您的应用程序 ID 匹配。过期前再次调用verify刷新;层影响 TTL (lc_vt:基本/高级/自定义)。请参阅 安全指南 用于非对称验证和 JWKS 缓存。
最佳实践
安全
- 始终验证服务器上的许可证,而不仅仅是客户端
- 对所有 API 通信使用 HTTPS
- 实施适当的速率限制以防止滥用
- 记录所有许可证验证尝试以供审核
- 使用设备指纹识别来防止许可证共享
表现
- 适当时缓存许可证验证结果
- 使用离线验证以获得更好的用户体验
- 实施正确的错误处理和重试逻辑
- 监控 API 使用情况并设置警报
- 使用批量操作进行多个许可证管理
用户体验
- 为无效许可证提供清晰的错误消息
- 针对网络问题实施优雅降级
- 在许可证到期前显示许可证到期警告
- 提供简单的许可证续订和升级路径
- 支持针对不同用例的多种许可证类型