定制 dhzid.group/dgl-client 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

dhzid.group/dgl-client

最新稳定版本:v1.0.2

Composer 安装命令:

composer require dhzid.group/dgl-client

包简介

Library for license client side.

README 文档

README

Paket Laravel untuk integrasi sistem lisensi dengan keamanan RSA. Memudahkan aplikasi Anda terhubung ke server lisensi untuk registrasi, validasi, dan manajemen lisensi secara otomatis.

Fitur Utama

  • 🔐 Keamanan RSA: Tanda tangan digital per-klien (private key tetap di sisi Anda)
  • Auto-generate Keys: Library otomatis membuat key pair jika belum ada
  • 🔄 Dual Flow: Dukung registrasi langsung atau klaim token undangan
  • 🛡️ Anti-replay: Proteksi terhadap serangan replay dengan timestamp
  • 📦 Siap Produksi: Penyimpanan terenkripsi, scheduler, dan middleware proteksi

Instalasi

1. Install via Composer

composer require dhzid-group/dgl-client

2. Publish Assets

php artisan vendor:publish --tag=license-config
php artisan vendor:publish --tag=license-migrations
php artisan vendor:publish --tag=license-views

3. Jalankan Migrasi

php artisan migrate

4. Konfigurasi Environment

Tambahkan ke file .env:

# URL server lisensi (sertakan /api)
LICENSE_SERVER_URL=http://license-management.test/api

# Private key RSA (opsional - library auto-generate jika kosong)
LICENSE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n
# Atau path ke file private key
LICENSE_PRIVATE_KEY_PATH=/absolute/path/to/private.key

# Enkripsi lokal (opsional)
LICENSE_ENCRYPTION_KEY=your-encryption-key
LICENSE_ENCRYPTION_IV=your-encryption-iv

# Scheduler untuk cek berkala
LICENSE_SCHEDULER_ENABLED=true
LICENSE_SCHEDULE_FREQUENCY=hourly

# Domain aplikasi (opsional - auto-detect jika kosong)
APP_DOMAIN=yourapp.test

Cara Penggunaan

Opsi 1: Registrasi Langsung

  1. Buka halaman registrasi: GET /license/register
  2. Isi data customer dan produk
  3. Library otomatis generate key pair dan kirim ke server
  4. Setelah sukses, halaman verifikasi akan cek aktivasi sampai lisensi valid

Opsi 2: Klaim Token Undangan (Pola A)

  1. Terima tautan dari admin: https://yourapp.com/license/claim?token=abc123...
  2. Buka halaman claim: GET /license/claim
  3. Library auto-generate key pair dan kirim public key ke server
  4. Setelah claim sukses, lanjut ke verifikasi lisensi

Programatik

use DhzidGroup\DglClient\Libraries\LicenseClient;

// Registrasi lisensi
$client = new LicenseClient();
$success = $client->registerLicense([
    'customer_name' => 'John Doe',
    'customer_email' => 'john@example.com',
    'customer_whatsapp' => '08123456789',
    'customer_address' => 'Jl. Merdeka 1',
    'product_slug' => 'my-product',
    'license_subscription' => 30,
    'domain' => 'yourapp.test',
]);

if ($success) {
    // Verifikasi aktivasi
    $active = $client->verifyActivation();
    if ($active) {
        echo "Lisensi aktif!";
    }
}

Rute yang Tersedia

  • GET /license/register - Form registrasi
  • POST /license/register - Proses registrasi
  • GET /license/claim - Form klaim token
  • POST /license/claim - Proses klaim public key
  • POST /license/verify - Polling verifikasi status

Middleware Proteksi

Tambahkan middleware ke rute yang perlu lisensi:

Route::middleware('license')->group(function () {
    Route::get('/dashboard', 'DashboardController@index');
    // Rute lain yang memerlukan lisensi
});

Keamanan

  • Private Key: Disimpan di storage/app/license/private.key (permission 600)
  • Public Key: Dikirim ke server saat registrasi/claim
  • Signature: Header X-Signature = Base64 RSA-SHA256
  • Anti-replay: Timestamp dengan toleransi ±5 menit

Checklist Produksi

  • Folder storage/app/license tidak dapat diakses publik
  • Permission file private key ketat (600)
  • URL server lisensi menggunakan HTTPS
  • Scheduler aktif: * * * * * php /path/to/artisan schedule:run
  • Database sudah dimigrasi
  • Environment variables terkonfigurasi

Troubleshooting

Error "Invalid signature"

  • Pastikan private key valid
  • Biarkan library auto-generate jika belum ada
  • Cek permission file private key

Error "Request expired"

  • Periksa sinkronisasi waktu server
  • Pastikan timestamp dalam toleransi ±5 menit

Error "Gagal claim/registrasi"

  • Cek token undangan masih valid
  • Pastikan rate limit server tidak terlampaui
  • Verifikasi format public key (PEM)

Error "Gagal simpan lisensi"

  • Jalankan php artisan migrate
  • Cek permission folder storage

Support

Untuk bantuan lebih lanjut, silakan buka issue di repository GitHub atau hubungi tim support.

Lisensi

MIT License

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固