软件授权中心

请登录管理后台

软件授权中心

当前仍在使用默认密码,强烈建议立即到「系统设置 → 修改密码」中更换。

运行概况

到期预警(30 天内到期)

按软件分布

子应用接入代码(粘到软件首页 <head> 里)

选中软件后自动生成。带 data-guard 时未通过授权会自动遮住页面;若该软件已上传核心 JS,会自动带上 data-core,授权通过后服务端会下发并注入这些 JS。

接入注意事项(必读,都是实际踩过的坑)
  1. 插入位置:整行粘到软件首页 <head> 的开头紧跟处(守门越早越不会闪页面内容)。
  2. 删除本地核心 JS 引用:把原来页面底部加载核心 JS 的那行删掉,例如 <script src="script.js"></script> —— 核心文件改由服务器下发后,本地不再放这个文件,残留引用会 404。第三方库(如 xlsx.full.min.js、vendor/ 目录)不是核心 JS,保留在本地不动。
  3. data-core 文件名必须一字不差(含大小写)地等于后台上传的文件名,不一致服务器会拒绝下发(404「该文件未托管」)。多个核心文件用逗号分隔。本生成器已自动读取该软件已上传的核心文件拼好此属性,直接复制即可,不要手改。
  4. 核心 JS 的初始化写法(最容易踩):核心 JS 是在授权通过后才注入执行的,此时 DOMContentLoaded / window.onload 早已触发过——把初始化包在这两个事件里的核心 JS,注入后永远不会执行,症状是「页面能打开但所有功能无反应」。结尾必须用下面的双兼容写法:
    function start() { /* 原来的初始化 */ }
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', start);
    } else {
      start();
    }
  5. 验证是否接通:打开软件 → 应出现授权遮罩 → 输入有效授权码 → 页面显示且功能可用。若页面能显示但功能异常 = 核心 JS 没执行(核对第 3、4 条);若一直遮罩 = 授权没过(核对授权码、绑定模式、名额)。
  6. 更新核心 JS:在「软件 → 核心文件」上传同名文件即覆盖,版本 +1;客户端会在下次验权时拿到新版本。

换服务器 / 换域名应急:生成一键重设链接

你换了授权服务器地址后,老客户的软件里仍记着旧地址。填入客户软件页面地址 + 新服务器地址,把生成的链接发给客户,客户点一次即永久生效(客户也可以在软件的激活界面里自己改)。

(填写上面两项后自动生成)

登记新软件

软件列表

生成授权码

授权码管理

已选 0 条

部署站点(已绑定的域名)

一个「域名 + 授权码」= 一次真实部署。这里可以看到软件都被部署到了哪些站点,并可随时解绑释放名额。

基本设置

两次联网校验之间用本地缓存,减轻服务器压力。360 = 6 小时,1440 = 1 天

服务器连不上时,距上次成功校验多少分钟内仍放行。10080 = 7 天,设为 0 = 断网即停

⚠️ 保存后必须重启服务才生效(当前进程已在旧端口监听)。也可在服务器执行 bash deploy.sh set-port 端口号。

「只看不激活」的授权码查询。不消耗资源、不留痕迹,是最适合批量试码的入口,请设得比校验更严

/api/serve 拉取核心文件的频率。按「页面加载一次 ≈ 每个核心文件一次」估算,默认 60

管理后台登录接口的尝试频率,是挡口令爆破的第一道闸。默认 10;设得越小越难爆破,但管理员自己反复输错也会被暂时挡住

单个审计日志文件超过该体积就归档另起新文件,避免无限增长撑爆磁盘。范围 1–64MB,默认 2MB

归档目录最多保留几份轮转档,超出删最旧的(轮转时与启动时各清理一次)。0 = 轮转即删不保留;默认 30 份

同名文件重传时,把上一版存入历史,管理员可在「核心文件 → 版本」里一键回滚。 5 = 保留最近 5 个历史版本(不含当前生效版,单文件 1MB 上限下约占 6MB);0 = 不保留。 调小后立即清理超出的旧版本,不可恢复。

选「是」才能取到真实来访 IP(否则全是 127.0.0.1,限流会误伤整个局域网)。
若本服务前面没有任何代理,请务必选「否」——否则伪造一个请求头就能绕过登录限流。

邮件通知(SMTP)

用你的 QQ 邮箱给即将过期的客户发「到期提醒」。授权码请在 QQ 邮箱「设置 → 账户 → IMAP/SMTP 服务」里生成(16 位,不是登录密码)。授权码只保存在服务器本地,绝不下发到浏览器。

关闭时,测试发送与到期提醒都会被拒绝

QQ 邮箱请用 465 + SSL/TLS

默认「开启」。QQ 邮箱等使用可信证书,务必保持严格校验;仅当 SMTP 使用自签证书时才需关闭。

默认「手动」,绝不自动发信;选「自动」后服务按下方「检查间隔」定时扫描临期授权(最小 1 小时)

单个数字如 7;或多级梯度用逗号分隔如 30,14,7,3,1(每一级对每条授权在每个过期周期内至多提醒一次)

仅「自动」模式生效;粒度越细越不易漏发(最小 1 小时,默认 1 小时)。例:设 6 = 每 6 小时查一次

用于「发测试提醒给自己」按钮的目标地址

与邮件并行推送;选类型后填写 Webhook 地址

0=不重试;网络抖动时自动补偿(默认 2 次)

第 n 次重试等待 退避×2^(n-1)(默认 1000ms)

两封邮件之间的节流,避免撞 SMTP 限流(默认 200ms)

先保存设置,再点这里给所有临期客户手动发信(试跑预览可先看将发给哪些客户;默认不重复骚扰已发过的客户)

邮件备份(每天自动把数据库备份发到邮箱)

按设定的时间(每天一次)把完整备份文件(含全部授权码、设置与核心文件密文,与「数据与备份 → 导出」内容一致) 作为邮件附件发到指定邮箱。发件信息复用上方「邮件通知」的 SMTP 配置(同一套 QQ 邮箱凭据,无需重复填写)。 恢复时:后台 → 数据与备份 → 导入恢复,选择邮件里的附件即可。

⚠️ 备份含全部授权数据与核心文件密钥,属于敏感信息——收件邮箱请务必是你自己可控制的地址; 附件上限 20MB(超出则跳过发送并记入审计,请改手动导出)。

开启后服务按下方时间每天发送一次(改动即时生效,无需重启)

默认 8 点。到点即发;错过的时间点重启服务后会补发

留空则无法发送。每个地址都会单独收到一封带完整附件的备份邮件

上次发送:从未

「立即发送一次」用于验证配置是否正确(会真的发一封);每日自动发送的结果可在「审计日志」中按 backup_email_sent / backup_email_failed 查看。

邮件模板(到期提醒内容)

可用占位符:{app_name} {key} {customer_email} {expire_date} {days_left}

占位符同上;发送时按实际授权数据替换

留空 = 只发上面的纯文本;填写后邮件同时包含 HTML 与纯文本双版本

按软件自定义提醒文案(可选)

默认所有软件共用上方「邮件模板」。如需某个软件用不同语气/内容,在这里单独设置(留空的项回退到全局模板)。

选择后下方编辑的是该软件专属文案

到期提醒发送日志

记录每一次到期提醒的发送结果(仅保留最近 500 条,不含 SMTP 授权码与管理员密码;为便于排查会记录授权码本体)。

暂无发送记录

到期自动化(可选)

三项都默认关闭,确认需要再开。

开启后,过期码会先进入「待停用」并在宽限期内发预警,超过宽限期才真正吊销,适合「不续费就不再服务」的场景;客户续费后需后台点一次「恢复」。

开启自动停用后,过期不超过该天数的码只预警、不吊销(0 = 过期即吊销,无过渡)。

不等后台定时器(最慢 1 小时扫一次),先保存设置再立刻跑一遍:已过期且超出宽限期的码会被吊销,刚过期还在宽限期内的会被标为「待停用」并进入预警。

开启后可看到客户有没有打开提醒邮件。涉及隐私,请先告知客户;多数邮件客户端默认屏蔽远程图片,读不到属正常现象。

授权中心对外访问的完整地址(结尾不带斜杠)。送达追踪的像素地址拼在它后面;留空则不启用追踪。

注意:「到期自动停用」与「到期提醒」共存时,已过期的码会先被标为待停用、宽限期内只发预警,不再发普通到期提醒——这是预期行为,不是漏发。

激活页面文案(客户看到的文字)

客户首次运行软件、或授权失效时弹出的那个面板上的文字,都可以在这里改。 留空 = 恢复内置默认文案;已改过的字段把内容清空再保存即可还原。

以下为「只看不激活」查询功能的文案。查询不会激活、不会占用名额,也不会改变本机授权状态。

以下为「授权管理」入口的文案。软件已激活后,SDK 会在页面角落显示一个小入口,点开可以自助解绑本机、释放名额(换电脑时用)。

以下为管理面板里「解绑本机」按钮自身的文案(客户换电脑前自助释放名额,不必联系管理员)。

修改管理员密码

备份导出

导出全部软件、授权码与运营设置为一个 JSON 文件。建议定期备份。

导入恢复

合并模式:只新增备份里没有的软件和授权码,不影响现有数据(推荐)。
替换模式:清空现有数据并以备份为准,不可撤销。

系统信息

批量设置收件邮箱

到期提醒要发给客户,先得有收件地址。客户一多,逐条在弹窗里改非常痛苦——这里一次粘贴即可。 每行一条 授权码,邮箱;绑定型授权码必须写成 授权码,邮箱,站点 (站点要在该码的已绑定列表里)。# 开头为注释行。只写邮箱,绝不改动授权码的状态/有效期/绑定。

列顺序:默认「授权码,邮箱[,站点]」;可在「高级」里改。
高级:自定义列顺序
可选值(英文):key 授权码 / email 邮箱 / site 站点。例:email,key 表示首列是邮箱。

危险操作

清空后所有授权码立即消失且无法恢复,请先导出备份。

审计日志