许可证

许可证是LicenseChain的核心。每个许可证都代表用户使用您的软件的有效权限。

什么是许可证?

A 执照 LicenseChain 中是一种数字许可,授予用户使用您的软件的权利。 每个许可证都包含有关用户、他们拥有的计划、到期时间以及他们可以访问哪些功能的信息。

许可证是加密安全的,可以通过我们的 API 实时验证。 它们支持各种许可证类型,包括永久许可证、基于订阅的许可证和试用许可证。

许可证结构

核心特性

  • 许可证密钥 - 唯一标识符
  • 计划 - 许可级别(免费、专业、商业、企业)
  • 验证类型 - 验证级别(基础、高级、企业)
  • 地位 - 当前状态(活动、过期、暂停)
  • 到期日 - 许可证到期时

用户信息

  • 发给 - 客户姓名或公司
  • 电子邮件 - 客户电子邮件地址
  • 特征 - 可用的特性和功能
  • 元数据 - 自定义数据和标签

许可证类型

永久许可

一次性购买许可证,永不过期。非常适合桌面应用程序。

  • 无有效期
  • 一次性付款
  • 终身访问
  • 非常适合桌面应用程序

订阅许可证

需要定期更新的循环许可证。非常适合 SaaS 应用程序。

  • 每月/每年续订
  • 自动过期
  • 定期计费
  • 非常适合 SaaS 应用程序

试用许可证

用于评估目的的有时间限制的许可证。非常适合先试后买。

  • 期限有限(7-30 天)
  • 全功能访问
  • 自动转换
  • 非常适合演示

许可证验证

实时验证

以低于 100 毫秒的响应时间实时验证许可证。使用 POST /v1/licenses/verify 与身体 { "key": "LICENSE-KEY" }。选修的 hwuid (或者 hardwareId) 启用硬件绑定:当许可证已绑定设备时,提供的 hwuid 必须匹配,否则响应为 valid: falsereason: "hardware_id_mismatch".

// License verification example
// Verify license key with client
// Check if license is valid and handle accordingly

硬件绑定 (HWUID)

可选硬件/设备绑定 (HWUID) 将许可证限制为特定设备。发送 hwuidPOST /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 使用情况并设置警报
  • 使用批量操作进行多个许可证管理

用户体验

  • 为无效许可证提供清晰的错误消息
  • 针对网络问题实施优雅降级
  • 在许可证到期前显示许可证到期警告
  • 提供简单的许可证续订和升级路径
  • 支持针对不同用例的多种许可证类型