必须先启用多用户模式并执行记忆迁移,再创建用户、配置jwt用户上下文隔离及密钥盐值,最后验证管理员权限;跳过任一环节将导致数据泄露或功能失效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在 Octop 平台上为家庭或团队成员分配不同权限,同时确保用户数据完全隔离、登录状态跨设备不丢失,必须完成多用户体系与 JWT 认证策略的协同配置。这一步不能跳过初始化阶段直接启用角色,否则所有用户将共享同一套会话上下文,导致隐私泄露和操作越权。
初始化多用户支持并启用可迁移记忆
登录 Octop 后台管理界面(地址为 https://octop.yourdomain.com/admin),使用初始管理员账号进入「系统设置 → 多用户」页签。
勾选【启用多用户模式】→ 点击「保存并重启服务」→ 等待页面提示“服务已重载”,此时 Octop 会自动重建用户工作区索引。
【必须执行】重启后立即在终端中执行:curl -X POST http://localhost:8080/api/v1/memory/migrate --data '{"force":true}'。若跳过此步,新用户首次登录时无法加载历史对话,旧用户切换设备后记忆仍会断裂。
创建管理员与普通用户账户
方法一:通过 Web 管理后台批量导入
在「用户管理 → 批量创建」中上传 CSV 文件,格式为:用户名,邮箱,角色,初始密码(不含表头)。角色字段仅接受 admin 或 member,其他值将被静默忽略。
方法二:调用 API 单个创建(适合脚本集成)
执行以下命令,替换 YOUR_ADMIN_TOKEN 为管理员 JWT:
curl -X POST http://localhost:8080/api/v1/users \-H "Authorization: Bearer YOUR_ADMIN_TOKEN" \-H "Content-Type: application/json" \-d '{"username":"alice","email":"alice@home.local","role":"admin","password":"P@ssw0rd2026"}'
注意:密码必须包含大小写字母、数字及特殊字符,长度不少于 10 位,否则返回 400 错误且不提示具体原因。
配置 JWT 隔离策略
第一步:编辑 /opt/octop/config/auth.yaml
将 isolation_mode 的值从 none 改为 user_context;
第二步:为每个用户生成独立密钥盐值
运行命令:octopctl jwt salt --all-users。该命令会为每个已存在用户写入唯一 salt_hash 到数据库 user_profiles 表,后续所有 Token 签发都将绑定此盐值。
第三步:强制刷新全部在线会话
执行:curl -X DELETE http://localhost:8080/api/v1/sessions/active --header "X-Admin-Key: $(cat /opt/octop/secrets/admin.key)"。这将清空所有未过期 Token 的服务端缓存,确保下次登录即启用隔离签名。
管理员专属操作权限验证
登录任意管理员账号,在侧边栏点击「权限看板」→ 查看顶部显示的「当前角色:admin」是否高亮为蓝色徽章。
尝试执行三项关键操作:① 点击「用户列表」中的任一 member 用户 →「重置密码」按钮可见且可点击;② 在「Connector 管理」页中,「腾讯文档同步开关」右侧出现齿轮图标;③ 进入「Agent 引擎调试台」,输入指令 /mem dump alice 可导出用户 alice 的结构化记忆快照。
若其中任一操作不可见或报 403,说明 JWT 隔离策略未生效,需回退至第三步重新执行 salt 初始化并确认 auth.yaml 中 enable_admin_scopes: true 已开启。











