权限 SDK

用 AIDC 自己的账号体系做应用的登录、身份、角色与分享——不必自己写登录页、不必自己存用户。

import { auth } from "/developer/sdk/v1/aidc.js";

登录与身份

Nexus 客户应用(/nexus/<cellId>/apps/<应用>)打开前,平台已经按会话把关:没登录跳 AIDC 登录页、登录后回到应用;不是这家公司的人(也没有被分享)看到 403。访客身份随应用票据下发,服务端按它裁决每一次读写——应用自己不用、也不能伪造身份。

const v = auth.viewer();        // 同步读:{ name: "张三", role: "member", shared: false }(页面注入,用来显示)
const me = await auth.me();     // 服务端确认:账号、公司、角色、应用 / 通道 / 版本,以及语义层权限
// me.permissions = { read: [可读类型], actions: [能执行的 Action], write: [可直接写的类型], share: 能否分享 }
if (auth.can(me, { action: "production.flag_issue" })) showFlagButton();

角色

角色 谁 能做什么
developer 本公司开发者(持 developer License 的账号、公司管理员、AIDC 平台员工) 看全部;定义语义;直接改数据;分享;test 通道
member 本公司成员(持 member License 或公司账号) 看清单登记的类型;执行 Action
editor 经「指定账号」分享、角色为可改的人(可以是别家公司的人) 同 member
viewer 只读分享、公开链接的访客 只看
anonymous AIDC 官方公开应用的访客 只看公开数据

应用清单可以把应用收紧到只有开发者和被分享的人:

{ "auth": { "access": "restricted" } }

缺省 company:本公司成员都能打开。Action 自己也可以限定角色(roles,见语义 SDK)。

只读访客想修改时:auth.login() 在新窗口打开 AIDC 登录页,登录后回到应用(沙箱里的应用不能跳转顶层页面)。

分享

// 开发者:分享当前应用
await auth.share({ audience: "company", role: "editor" });                       // 本公司全员(restricted 应用靠它对全员开放)
await auth.share({ audience: "users", account: "li.si@example.com", role: "editor", expiresInDays: 30 }); // 指定账号,可跨公司
const { url } = await auth.share({ audience: "public" });                         // 公开链接:持链接的任何人,只读
const list = await auth.shares();                                                 // 当前应用的分享(公开链接只显示前缀)
await auth.revoke(list[0].id);                                                    // 撤销:链接 / 授权立即失效
aidc share tj8100-live --user li.si@example.com --role editor --days 30
aidc share tj8100-live --public
aidc share list tj8100-live
aidc share revoke <分享 id>

票据

浏览器 SDK 自动带票据、自动续期:客户应用的票据 8 小时有效,快到期时凭当前票据续一张(过期 24 小时内也能续,服务端会复核账号仍有权访问、分享仍然有效)。所以工厂大屏这种一直开着的看板不会过夜就断。

API

方法 路径 说明
GET /api/v1/developer/auth/me 我是谁、什么角色、语义层权限
GET / POST /api/v1/developer/shares 分享列表 / 分享(开发者)
DELETE /api/v1/developer/shares/{id} 撤销
GET /nexus/s/{令牌} 公开链接落地页(只读)

本页由 developer/docs/auth.md 生成 · Markdown 原文 · llms.txt