承接 eluki/license-server 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

eluki/license-server

最新稳定版本:v1.0.0

Composer 安装命令:

composer require eluki/license-server

包简介

Pacote servidor de licenças para Laravel

README 文档

README

📦 Packagist

Latest Stable Version License

Encontre este pacote no Packagist para facilitar a instalação e atualização via Composer.

Pacote Laravel para gerenciamento de licenças de software, permitindo criar, gerar e distribuir licenças de forma segura para clientes.

O License Server funciona como backend central de licenciamento, gerenciando todas as licenças emitidas para o License Client.

📦 Instalação

Instale via Composer:

composer require eluki/license-server

Publique os arquivos de configuração e migrations:

php artisan vendor:publish --provider="LicenseServer\ServerServiceProvider"

Execute as migrations do servidor:

php artisan migrate --path=database/migrations/vendor/license-server

🖥 Rotas do License Server

As rotas são protegidas e usadas para gerenciar licenças:

Route::prefix('license-server')->group(function () {
    Route::get('/', [LicenseServerController::class, 'createForm'])->name('server.create');
    Route::get('/generate', [LicenseServerController::class, 'generateKeyForm'])->name('generate.keys');
    Route::get('/download-key/{tipo}', [LicenseServerController::class, 'downloadKey'])->name('keys.download');

    Route::post('/license/store', [LicenseServerController::class, 'store'])->name('server.store');
    Route::post('/generate-keys', [LicenseServerController::class, 'generateKeys'])->name('keys.generate');
});

Dica: Proteja essas rotas com autenticação para evitar acesso não autorizado.

⚡ Uso Básico

  • Acesse o formulário de criação de licença:
    http://localhost/your-app/license-server
  • Gere chaves para os clientes via formulário:
    • Generate Key → formulário de geração de chaves
    • Download Key → baixar chave pública/privada
  • Armazene licenças no banco de dados usando o endpoint /license/store.

🔑 Geração e Download de Chaves

  • Chave Pública: usada pelo License Client para validar licenças localmente.
  • Chave Privada: usada pelo License Server para assinar licenças.

Exemplo de geração de chave via rota:

Route::post('/generate-keys', [LicenseServerController::class, 'generateKeys'])->name('keys.generate');

Exemplo de download de chave:

Route::get('/download-key/{tipo}', [LicenseServerController::class, 'downloadKey'])->name('keys.download');

🗂 Estrutura do Projeto

license-server/
├── src/
│   ├── Helpers
│   │   ├── globalVariables.php
│   │   ├── HardwareHelper.php
│   │   └── LicenseHelper.php
│   ├── Http
│   │   ├── Controllers
│   │   │   └── LicenseServerController.php
│   │   ├── Middleware
│   │   │   ├── LicenseCheck.php
│   │   │   └── CheckLicense.php
│   │   └── ServerServiceProvider.php
│   ├── Models
│   │   └── License.php
│   ├── Services
│   │   └── LicenseService.php
│   └── ClientServiceProvider.php
├── config/
│   └── license.php
├── database/
│   └── migrations
├── resources/
│   └── views
├── routes/
│   └── web.php
├── composer.json
└── README.md

Nota: No seu arquivo .env deve ter a mesma chave APP_KEY=base64: para reconhecer a máquina e o projeto que pretende licenciar. Caso contrário, o pacote declara invasão de licença.

🔐 Boas Práticas de Segurança

  • Proteja as rotas do License Server com autenticação (auth) ou roles administrativas.
  • Nunca exponha a chave privada do servidor.
  • Use HMAC e criptografia para validar a integridade das licenças.
  • Registre tentativas de uso de licenças inválidas para auditoria.
  • Limite acesso externo apenas a IPs confiáveis, se possível.

📦 Ecossistema

📫 Contato

NOTA

Importante:** O APP_KEY do projeto precisa ser consistente entre ambientes.

Essa chave é usada como parte da validação de licença.
Se não coincidir, o pacote considera a licença inválida.

⚠️ Dica de Depuração:
Em caso de qualquer erro ou exceção, verifique os arquivos de log em logs/ClientLicense.log ou logs/license_server.log para mais detalhes.

📖 Documentação Completa

Para detalhes mais avançados, acesse a documentação em PDF:

👉 Abrir Documentação

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: Blade

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-09-12