# license-service **Repository Path**: devqiaoyu/license-service ## Basic Information - **Project Name**: license-service - **Description**: 快速生成 License 授权文件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-25 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # License Service 这是一个基于 Next.js 构建的 License 管理服务,用于生成和验证软件许可证。 ## 功能特性 - 自动生成硬件指纹信息 - 基于硬件信息和私钥生成许可证 - 验证许可证的有效性 - 支持设置过期时间和管理员权限 - 用户友好的 Web 界面 ## 技术栈 - [Next.js 15](https://nextjs.org/) - [React 19](https://react.dev/) - [TypeScript](https://www.typescriptlang.org/) - [Ant Design](https://ant.design/) - [Day.js](https://day.js.org/) ## 系统要求 - Node.js 18+ 版本 - npm 或 yarn 包管理器 ## 快速开始 ### 安装依赖 ```bash npm install # or yarn install # or pnpm install # or bun install ``` ### 开发模式运行 ```bash npm run dev # or yarn dev # or pnpm dev # or bun dev ``` 打开 [http://localhost:3000](http://localhost:3000) 在浏览器中查看结果。 ### 构建生产版本 ```bash npm run build # or yarn build # or pnpm build # or bun build ``` ### 启动生产服务器 ```bash npm start # or yarn start # or pnpm start # or bun start ``` ## 使用说明 ### 生成 License 1. 访问主页,点击"获取硬件信息"按钮自动填充硬件信息 2. 设置过期日期和是否为管理员权限 3. 点击"生成License"按钮生成并下载 license.json 文件 ### License 验证 系统通过以下方式验证 License: 1. 验证 License 签名的有效性 2. 检查硬件指纹是否匹配 3. 确认 License 是否已过期 ## API 接口 ### 获取硬件信息 ``` GET /api/license/generate ``` 返回当前设备的硬件信息,包括 CPU ID、CPU 名称和 MAC 地址。 ### 生成 License ``` POST /api/license/generate ``` 根据提供的硬件信息和配置生成 License。 ### 验证 License ``` GET /api/license/status ``` 验证当前系统中的 License 是否有效。 ## 项目结构 ``` src/ ├── app/ # Next.js 应用目录 │ ├── api/ # API 路由 │ │ └── license/ # License 相关接口 │ │ ├── generate/ │ │ │ └── route.ts │ │ └── status/ │ │ └── route.ts │ ├── page.tsx # 主页 │ └── layout.tsx # 布局文件 ├── utils/ # 工具函数 │ └── licenseUtils.ts # License 相关工具函数 └── config/ # 配置文件 ├── private.pem # 私钥文件(需自行生成) └── public.pem # 公钥文件(需自行生成) ``` ## 安全说明 1. 在生产环境中,请确保私钥文件的安全性 2. 建议在安全的环境中生成密钥对 3. 不要将私钥提交到版本控制系统中 ### 密钥生成 1. 生成私钥: ```bash openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private.pem ``` 2. 生成公钥: ```bash openssl rsa -in private.pem -pubout -out public.pem ``` ## 部署 部署到 Vercel 是最简单的方式,点击下方按钮开始部署: [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/your-repo/license-service) 你也可以参考 [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) 了解更多部署选项。