集成到其他项目

本授权系统可以独立部署,为其他项目提供授权验证服务。下面介绍如何将授权系统绑定到其他项目。

整体架构

+------------------+      +------------------------+
|   其他项目       | ---> |   云帆授权系统         |
| (网盘/小程序等)  | HTTPS | (auth.xenl.ac.cn)     |
+------------------+      +------------------------+
                                   |
                                   v
                          +------------------------+
                          |   数据库               |
                          | (license_codes表)     |
                          +------------------------+

第一步:获取授权码

1. 访问 license/admin.php 后台的"授权码管理"页面

2. 在"生成授权码"表单中:

3. 复制生成的授权码(格式如:CODE-260506-XXXXXXXXXXXXXXXX

第二步:修改目标项目配置

在目标项目中,找到配置文件(如 config.php),修改以下内容:

// 授权系统配置
$licenseConfig = [
    'license_mode' => 'code',  // 使用授权码模式
    'verify_url' => 'https://auth.xenl.ac.cn/license/api/verify.php',
    'license_key' => '这里填入生成的授权码',  // 替换为生成的授权码
    'app_key' => '00372cd6b6d56194a3e46cfc06f819f61a6857a7da8e94b4fcf62cfe41f69721',
    'app_id' => 'APP-YUNFAN-PAN',
    'admin_exempt' => true,
    'strict_mode' => true,
];

// 引入授权类
require_once 'license/LicenseManager.php';
require_once 'license/LicenseMiddleware.php';

// 执行验证
$manager = \LicenseSystem\LicenseManager::getInstance($licenseConfig);
if (!$manager->verify()) {
    $manager->renderErrorPage();
    exit;
}

第三步:引入授权中间件

在目标项目的入口文件(如 index.php)顶部添加:

<?php
// 引入授权验证
require_once __DIR__ . '/license/LicenseLite.php';

// 使用授权码验证
LicenseLite::verify([
    'server_url' => 'https://auth.xenl.ac.cn/license/api/code.php',
    'code' => 'CODE-260506-XXXXXXXXXXXXXXXX',  // 你的授权码
    'domain' => $_SERVER['HTTP_HOST'],
]);
提示:如果目标项目部署在与授权系统相同的服务器上,可以使用相对路径引入授权类: require_once __DIR__ . '/license/LicenseLite.php';

支持的授权模式对比

模式 适用场景 配置难度
code(推荐) 分销代理、临时授权 简单
online 需要实时验证 简单
offline 内网环境 中等
domain 固定域名 简单

注意事项

下载授权系统:将整个 license/ 文件夹复制到目标项目中即可使用。