KyrosDev's picture
改進授權流程為自動綁定模式
e69ed7b
metadata
title: KSTools License Manager
emoji: 🔑
colorFrom: blue
colorTo: purple
sdk: docker
pinned: false

🔑 KSTools License Manager

專為 KSTools Revit Plugin 設計的完整授權管理系統,採用現代化 HTML/CSS/JS 前端架構。

系統架構

  • 後端: FastAPI (Python 3.11)
  • 前端: 純 HTML/CSS/JavaScript (深色主題管理界面)
  • 認證: Supabase Auth
  • 資料庫: Supabase PostgreSQL
  • 部署: Hugging Face Spaces
  • Plugin 整合: C# .NET Framework (Revit API)

功能特色

🎯 核心授權流程

管理員操作 (Web 後台)

  1. 建立授權 - 填入必要資訊:
    • 用戶名稱 *
    • 有效天數 * (7天/30天/90天/1年/永久)
    • 電子郵件 (選填)
    • 備註 (選填)
  2. 生成授權碼 - 系統自動產生 32位字符授權碼
  3. 提供給用戶 - 將授權碼交付給用戶

用戶端操作 (Revit Plugin)

  1. 輸入授權碼 - 用戶在 Plugin 中輸入管理員提供的授權碼
  2. 自動綁定 - 首次啟用時系統自動生成並綁定 32位硬體指紋 (CPU + 主機板)
  3. 即時啟用 - 無需額外操作,立即啟用成功

持續驗證

  1. 自動驗證 - Plugin 每次使用時自動驗證授權有效性
  2. 硬體綁定 - 確保授權只能在綁定的設備上使用
  3. 離線支援 - 支援 24 小時離線使用 (快取機制)

🎨 現代化前端

  • 零框架依賴: 純 HTML/CSS/JS,載入迅速
  • 響應式設計: 支援桌面和行動裝置
  • 深色主題: GitHub 風格的現代介面
  • Supabase 認證: 安全的用戶登入系統
  • 即時更新: 無需重新載入的 SPA 體驗

🛡️ 安全機制

  • 硬體綁定: 首次啟用自動綁定,防止授權碼被濫用
  • JWT Token 認證: 管理後台安全認證
  • 加密通訊: HTTPS 加密通訊協議
  • 一機一碼: 每個授權碼只能在一台設備上使用

📊 管理功能

  • 用戶授權管理
  • 即時使用統計
  • 詳細活動記錄
  • 系統狀態監控

快速開始

部署到 Hugging Face Spaces

  1. Fork 或 Clone 此專案
  2. 在 Hugging Face 建立新的 Space
  3. 設定環境變數:
    SUPABASE_URL=your-supabase-url
    SUPABASE_ANON_PUBLIC_KEY=your-anon-key
    SUPABASE_SERVICE_KEY=your-service-key
    

本地開發

# 1. 克隆專案
git clone <repo-url>
cd kstools-license-system

# 2. 設定環境變數
cp .env.example .env
# 編輯 .env 填入您的 Supabase 憑證

# 3. 啟動後端
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

# 4. 啟動前端
cd frontend
python3 -m http.server 8080

訪問 http://localhost:8080 使用系統。

前端架構 (全新)

frontend/
├── index.html          # 主應用 (需認證)
├── login.html          # 登入頁面
├── config.js           # 配置設定
├── css/
│   └── style.css      # 統一樣式 (深色主題)
└── js/
    ├── api.js         # API 客戶端 (109行)
    ├── utils.js       # 工具函數 (161行)
    ├── auth.js        # Supabase 認證 (270行)
    ├── components.js  # UI 組件 (221行)
    ├── app.js         # 應用控制器 (252行)
    └── pages/         # 頁面模組
        ├── dashboard.js  # 系統儀表板
        ├── users.js      # 用戶管理
        ├── logs.js       # 授權記錄
        └── settings.js   # 系統設定

技術優勢

性能優化

  • 程式碼精簡化 (相比原 Streamlit 版本減少 60%+)
  • 無框架依賴,載入迅速
  • 最小化 DOM 操作

可維護性

  • 模組化設計,職責分離
  • 統一錯誤處理機制
  • 清晰的程式碼結構

用戶體驗

  • 現代化深色主題界面
  • 即時反饋和通知系統
  • 響應式設計

API 文檔

FastAPI 自動生成的 API 文檔:

  • Swagger UI: /docs
  • ReDoc: /redoc

詳細授權流程

詳細的授權流程說明請參考:LICENSE_WORKFLOW.md

硬體指紋技術規格

  • 演算法: SHA256 + Base64 編碼
  • 來源: CPU ProcessorId + 主機板序號
  • 長度: 32 字符
  • 格式: 大寫英數字符

授權碼格式

  • 格式: XXXX-XXXX-XXXX-XXXX
  • 字符集: A-Z, 0-9
  • 總長度: 19 字符 (含分隔符)

授權

MIT License - 詳見 LICENSE 檔案。

支援

如有問題或建議,請透過 GitHub Issues 聯繫。