Licenças
As licenças são o núcleo do LicenseChain. Cada licença representa uma permissão válida para um usuário usar seu software.
O que são licenças?
A Licença no LicenseChain é uma permissão digital que concede ao usuário o direito de usar seu software. Cada licença contém informações sobre o usuário, o plano que ele possui, quando ele expira e quais recursos ele pode acessar.
As licenças são criptograficamente seguras e podem ser verificadas em tempo real através da nossa API. Eles oferecem suporte a vários tipos de licença, incluindo licenças perpétuas, baseadas em assinatura e de avaliação.
Estrutura de licença
Propriedades principais
- Chave de licença - Identificador único
- Plano - Nível de licença (GRATUITO, PRO, BUSINESS, ENTERPRISE)
- Tipo de verificação - Nível de verificação (básico, avançado, empresarial)
- Status - Estado atual (ATIVO, EXPIRADO, SUSPENSO)
- Expiração - Quando a licença expira
Informações do usuário
- Emitido para - Nome do cliente ou empresa
- E-mail - Endereço de e-mail do cliente
- Características - Recursos e capacidades disponíveis
- Metadados - Dados e tags personalizados
Tipos de licença
Licenças Perpétuas
Licenças de compra única que nunca expiram. Perfeito para aplicativos de desktop.
- Sem data de validade
- Pagamento único
- Acesso vitalício
- Perfeito para aplicativos de desktop
Licenças de assinatura
Licenças recorrentes que exigem renovação periódica. Ideal para aplicativos SaaS.
- Renovação mensal/anual
- Expiração automática
- Faturamento recorrente
- Perfeito para aplicativos SaaS
Licenças de teste
Licenças por tempo limitado para fins de avaliação. Ótimo para experimentar antes de comprar.
- Duração limitada (7 a 30 dias)
- Acesso completo aos recursos
- Conversão automática
- Perfeito para demonstrações
Verificação de licença
Verificação em tempo real
Verifique licenças em tempo real com tempos de resposta inferiores a 100 ms. Usar POST /v1/licenses/verify com corpo { "key": "LICENSE-KEY" }. Opcional hwuid (ou hardwareId) permite vinculação de hardware: quando a licença vincula dispositivos, o hwuid fornecido deve corresponder ou a resposta será valid: false com reason: "hardware_id_mismatch".
// License verification example // Verify license key with client // Check if license is valid and handle accordingly
Ligação de hardware (HWUID)
A ligação opcional de hardware/dispositivo (HWUID) limita uma licença a dispositivos específicos. Enviar hwuid em POST /v1/licenses/verify (por exemplo, do seu SDK getHardwareId()). Se a licença ainda não tiver um dispositivo vinculado, a primeira verificação bem-sucedida com um hwuid executará uma ligação de primeiro uso. Usar POST /v1/licenses/bind-hardware (autenticado) para vincular explicitamente, e POST /v1/licenses/validate-hardware para validar chave + ID de hardware. Todos os SDKs oficiais oferecem suporte opcional hwuid em verificar e usar HMAC-SHA256 com comparação em tempo constante para verificação de assinatura de webhook.
Token de declaração de licença (verificação offline)
Depois de um on-line POST /v1/licenses/verify, a API Core poderá retornar license_token (RS256JWT), license_token_expires_at, e license_jwks_uri quando as chaves de assinatura são configuradas na API. Armazene o token com segurança, verifique sua assinatura usando GET /v1/licenses/jwks, exigir token_use === "licensechain_license_v1", validar exp e (quando você emite licenças por aplicativo) que aud corresponde ao ID do seu aplicativo. Atualize chamando verify novamente antes de expirar; camada afeta o TTL (lc_vt: básico/avançado/personalizado). Veja o Guia de segurança para verificação assimétrica e cache JWKS.
Melhores Práticas
Segurança
- Sempre verifique as licenças no seu servidor, não apenas no cliente
- Use HTTPS para todas as comunicações de API
- Implemente uma limitação de taxa adequada para evitar abusos
- Registrar todas as tentativas de verificação de licença para auditoria
- Use a impressão digital do dispositivo para impedir o compartilhamento de licenças
Desempenho
- Resultados da verificação de licença em cache quando apropriado
- Use a verificação offline para uma melhor experiência do usuário
- Implemente o tratamento adequado de erros e a lógica de nova tentativa
- Monitore o uso da API e configure alertas
- Use operações em massa para gerenciamento de múltiplas licenças
Experiência do usuário
- Forneça mensagens de erro claras para licenças inválidas
- Implementar degradação graciosa para problemas de rede
- Mostrar avisos de expiração de licença antes que expirem
- Forneça caminhos fáceis de renovação de licença e atualização
- Suporta vários tipos de licença para diferentes casos de uso