集成到其他项目
本授权系统可以独立部署,为其他项目提供授权验证服务。下面介绍如何将授权系统绑定到其他项目。
整体架构
+------------------+ +------------------------+
| 其他项目 | ---> | 云帆授权系统 |
| (网盘/小程序等) | HTTPS | (auth.xenl.ac.cn) |
+------------------+ +------------------------+
|
v
+------------------------+
| 数据库 |
| (license_codes表) |
+------------------------+
第一步:获取授权码
1. 访问 license/admin.php 后台的"授权码管理"页面
2. 在"生成授权码"表单中:
- 填写要授权的目标域名(如:example.com)
- 选择授权类型:限时授权或限次授权
- 设置授权天数或使用次数
- 点击"生成授权码"
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 | 固定域名 | 简单 |
注意事项
- 授权码格式:必须是
CODE-日期-随机字符格式 - 域名绑定:授权码会绑定到指定域名,跨域使用会失败
- 有效期检查:限时授权码过期后自动失效
- 使用次数:限次授权码用完后自动失效
下载授权系统:将整个
license/ 文件夹复制到目标项目中即可使用。