mirror of
https://github.com/kuaifan/dootask.git
synced 2026-09-19 02:16:26 +00:00
- 在线授权登录时账号名下有多条可用授权则弹窗选择,选定后复用验证码确认签发(login/confirm) - 新增 Doo::licenseDecode / licenseBindingError;保存离线 license 与创建用户前校验付费档 SN/MAC 与本机匹配 - 诊断展示与校验门槛纳入不限人数(people==0)档
109 lines
6.4 KiB
Markdown
109 lines
6.4 KiB
Markdown
---
|
||
id: license.online.howto
|
||
title: 在线授权(邮箱验证码登录 / 申请试用 / 自动续期)
|
||
type: howto
|
||
feature: license
|
||
scope: super-admin
|
||
locale: zh
|
||
aliases:
|
||
- 在线授权
|
||
- 邮箱授权
|
||
- 邮箱验证码授权
|
||
- 用 appstore 账号授权
|
||
- 申请试用
|
||
- 试用授权
|
||
- 在线 License
|
||
- 自动续期
|
||
- 授权邮箱登录
|
||
- 在线授权到期
|
||
- 在线授权冻结
|
||
- 在线授权被吊销
|
||
- 换机 deactivate
|
||
- 选择要使用的授权
|
||
- 一个账号多条授权
|
||
- 登录时选择授权
|
||
- SN 与 License 不匹配
|
||
- MAC 与 License 不匹配
|
||
- 终端SN与License不匹配
|
||
- 终端MAC与License不匹配
|
||
- 换机后在线授权失效
|
||
related_tools: []
|
||
related_pages: []
|
||
prerequisites:
|
||
- 需要进入「系统设置」→「License」页面(仅管理员可见),切到「在线授权」Tab
|
||
- 需要一个在 App Store 注册的邮箱账号,登录后可在 App Store 门户「我的授权」查看
|
||
- 终端需能联网访问 App Store 授权中心
|
||
negative:
|
||
- 在线授权与离线授权互斥:同一时刻只有一张生效 License;切到在线并登录后会接管 License 文件
|
||
- 离线授权(粘贴 License 原文)完全不受影响,没有自动续期
|
||
- 一个账号同一时刻只占用一个实例座位,换机需先在原实例「退出在线授权」释放
|
||
- 试用每个账号仅一次,时长由 App Store 管理员配置且硬上限 60 天
|
||
last_verified: 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/license` 的 `error` 数组,便于脚本巡检
|
||
|
||
## 不支持
|
||
- 普通管理员能看授权信息但不能登录/签发;只有超级管理员(id=1)能操作
|
||
- 在线授权依赖联网;完全离线/内网隔离部署请用离线授权(粘贴原文)
|
||
- 在 App Store 内购买 License 为后续能力,当前在线授权面向已售出/试用账号
|