kuaifan 9a3d9d3b9c feat(license): 多授权选择登录 + 离线 license SN/MAC 绑定校验加固
- 在线授权登录时账号名下有多条可用授权则弹窗选择,选定后复用验证码确认签发(login/confirm)
- 新增 Doo::licenseDecode / licenseBindingError;保存离线 license 与创建用户前校验付费档 SN/MAC 与本机匹配
- 诊断展示与校验门槛纳入不限人数(people==0)档
2026-07-02 13:29:51 +00:00

6.4 KiB
Raw Permalink Blame History

id, title, type, feature, scope, locale, aliases, related_tools, related_pages, prerequisites, negative, last_verified
id title type feature scope locale aliases related_tools related_pages prerequisites negative last_verified
license.online.howto 在线授权(邮箱验证码登录 / 申请试用 / 自动续期) howto license super-admin zh
在线授权
邮箱授权
邮箱验证码授权
用 appstore 账号授权
申请试用
试用授权
在线 License
自动续期
授权邮箱登录
在线授权到期
在线授权冻结
在线授权被吊销
换机 deactivate
选择要使用的授权
一个账号多条授权
登录时选择授权
SN 与 License 不匹配
MAC 与 License 不匹配
终端SN与License不匹配
终端MAC与License不匹配
换机后在线授权失效
需要进入「系统设置」→「License」页面仅管理员可见切到「在线授权」Tab
需要一个在 App Store 注册的邮箱账号,登录后可在 App Store 门户「我的授权」查看
终端需能联网访问 App Store 授权中心
在线授权与离线授权互斥:同一时刻只有一张生效 License切到在线并登录后会接管 License 文件
离线授权(粘贴 License 原文)完全不受影响,没有自动续期
一个账号同一时刻只占用一个实例座位,换机需先在原实例「退出在线授权」释放
试用每个账号仅一次,时长由 App Store 管理员配置且硬上限 60 天
v1.8.45

在线授权(邮箱验证码登录 / 申请试用 / 自动续期)

DooTask 的 License 页提供两种授权方式,可在页面顶部 Tab 切换:

  • 离线授权:手动粘贴 License 原文(见 license.howto),无自动续期。
  • 在线授权:用 App Store 注册邮箱 + 邮箱验证码登录自助签发,终端自动定时续期(类似 JetBrains 账号激活)。

入口

桌面端:左上角头像 →「系统设置」→「License」→ 顶部「在线授权」Tab仅管理员可见

怎么用

登录授权与申请试用共用同一套「邮箱 + 验证码」输入,先发码再选择动作:

  1. 在「在线授权」Tab 输入 App Store 注册邮箱
  2. 点击「发送验证码」→ 系统向该邮箱发码(按钮进入 60 秒倒计时,发码成功后提示验证码已发送至脱敏邮箱)
  3. 填入收到的验证码

已有授权 → 登录授权

  • 填好邮箱与验证码后点击「登录授权」
  • 终端把自身指纹doo_sn、网卡 MAC、版本上报授权中心签发一张租约 License 并落地
  • 成功后页面显示账号、套餐、使用人数、授权有效期、SN/MAC与本机是否匹配、当前状态

账号名下有多条可用授权时

  • 若该账号名下有两条及以上本机可用的授权(座位空闲、或本机已在用的),登录时会弹出「选择要使用的授权」窗口,逐条列出套餐、使用人数、授权有效期,本机已在用的会标注「当前设备使用中」
  • 选中一条后点击「确定授权」即对该条签发(复用刚才的验证码,无需重新发码)
  • 只有一条可用时不弹窗,直接签发;没有可用授权则提示申请试用或购买;名下授权都被其它实例占用时提示需先在原实例释放(换机)

没有正式授权 → 申请试用

  • 填好邮箱与验证码后点击「申请试用」即开通试用授权并签发
  • 试用默认 14 天 / 不限人数(具体以 App Store 管理员配置为准,时长硬上限 60 天),每个账号仅能申请一次

日常维护

  • 自动续期:终端每小时检查,租约将尽时自动向授权中心续期,无需人工干预(需保持联网);进入授权页时也会静默刷新一次
  • 换机 / 退出:「退出在线授权」会释放该账号在授权中心占用的座位,并把终端回落到基础版;换机时先在原实例退出,再到新实例登录

状态与提醒(断网/欠费时的分级降级)

在线授权按租约 + 本地宽限分四级提醒会显示在「License」页与仪表盘顶部横幅仅管理员可见

状态 含义 影响
生效中 续期正常
即将到期 续期失败或租约临近 仅提醒
已过期 租约已到期 限制新增用户(沿用离线过期的既有行为)
已吊销 过期超过宽限期或授权被收回 回落基础版(最多 3 人,超出的账号按既有规则禁用)

只要在租约窗口内恢复联网并成功续期一次,即可回到「生效中」。

SN / MAC 与本机匹配

在线授权签发的 License 内嵌了签发时的终端 SN 与网卡 MAC。正常情况下二者与本机一致「在线授权」Tab 保持极简,只显示账号、套餐、使用人数、有效期与状态(带颜色圆点),不常驻展示 SN/MAC 这类技术细节。

一旦 SN 或 MAC 与本机不匹配,页面顶部会浮出告警卡,并展开「诊断详情」逐项列出「授权 SN / 当前 SN / 授权 MAC / 当前 MAC」及匹配标记✓/✕同一批告警也会出现在仪表盘顶部横幅。「离线授权」Tab手动粘贴场景则始终以列表展示 SN/MAC用行尾标签直陈匹配与否、不匹配时整行标红IP/域名/创建时间等低频字段收纳在「更多信息」里。

授权成功后若终端的 SN 或 MAC 发生变化,行为不同:

  • MAC 变化SN 不变):属于同一实例,下一次自动续期会用新的 MAC 重新签发 License 自动恢复,通常无感;重签前的短暂窗口可能出现 MAC 不匹配告警。
  • SN 变化:视为换机。续期会被授权中心判为座位被占用而拒绝重签,原 License 因 SN 对不上而失效,终端将按状态机走向「已过期 → 已吊销」并回落基础版。需在原实例(或让管理员在 App Store 授权中心)释放座位后,在新实例重新登录授权。

怎么自检

  • 接口 POST api/license/status 返回当前在线授权状态mode/plan/people/lease_expired_at/status
  • 提醒文案同样并入 POST api/system/licenseerror 数组,便于脚本巡检

不支持

  • 普通管理员能看授权信息但不能登录/签发只有超级管理员id=1能操作
  • 在线授权依赖联网;完全离线/内网隔离部署请用离线授权(粘贴原文)
  • 在 App Store 内购买 License 为后续能力,当前在线授权面向已售出/试用账号