授权体系落地:30 天试用 + LIC- 在线 / LICOFF- 离线激活 + /pricing 定价页
借鉴 Yaak 授权模型 + 复用自家 OpsXShell 生产级授权协议(opsx-licence 服务端): - Rust services/license:30 天试用自首次启动自动开始;LIC- 在线激活/周检/解绑 (双节点容灾 + 响应 Ed25519 签名校验 + 时钟回拨检测 + 30 天离线容忍); LICOFF- 离线证本地自验(产品码 opsxapi + 设备绑定 + ≤1 年期限) - 前端 src/license.ts + 活动栏授权徽章(试用 N 天/已授权/未授权)+ 设置→授权页(状态横幅/激活表单/解绑/定价链接带 ?intent= 追踪) - /pricing 独立定价页(三站同结构):30 天试用条款、在线/离线激活说明三卡、 年付↔终身切换、授权 FAQ、独立开发者声明;导航全部接入 - opsxDB 个人 ¥69/年·¥199 终身 / 团队 ¥69 / 私有化 ¥6000(与 API 定位错开) - GUI 实测:试用 30 天徽章渲染正常;浏览器态授权页正确显示仅桌面端提示
This commit is contained in:
1 parent
d7a9503042
commit
c304b9f251
19 files changed
+888
-7
No files matched your search
@@ -6,6 +6,8 @@ import { useWorkspaceLifecycle } from "./features/workspace/useWorkspaceLifecycl
|
||||
*/
|
||||
import { findNode } from "./core/index";
|
||||
import { useWorkspace } from "./workspaceStore";
|
||||
import { useLicense } from "./license";
|
||||
import { useEffect } from "react";
|
||||
import { ActivityRail } from "./components/ActivityRail";
|
||||
import { Sidebar } from "./components/Sidebar";
|
||||
import { TestingView } from "./features/testing/TestingView";
|
||||
@@ -22,6 +24,8 @@ import { EmptyState } from "./features/workspace/EmptyState";
|
||||
|
||||
export function OpsxWorkspace() {
|
||||
useWorkspaceLifecycle();
|
||||
// 授权状态(桌面端):30 天试用倒计时 / 激活状态;浏览器环境自动跳过
|
||||
useEffect(() => { void useLicense.getState().load(); }, []);
|
||||
const inited = useWorkspace((s) => s.collections.length > 0 || s.environments.length > 0);
|
||||
const collections = useWorkspace((s) => s.collections);
|
||||
const activeTabId = useWorkspace((s) => s.activeTabId);
|
||||
|
||||
Reference in new issue
Block a user