SuperAPI AI 工具集

implement-access-control

安全与审计

查看项目

更新于 10-16 04:30

技能介绍

用途:在服务端路由上校验角色与权限,保护接口。默认语言为 Node,客户端与 implement-saaskit 相同。

主要能力:先调用 validateToken 校验令牌并返回声明,再把 roles、permissions(字符串数组)、sub(用户)、oid(组织)挂到请求对象上,然后按路由要求角色或权限,缺失时返回 403,未认证返回 401,绝不默认放行。权限采用 resource:action 命名(如 projects:read)。Scalekit 已将组织内首个用户设为 admin,其余为 member。

使用方式:先确认登录与角色,若应用没有 SaaSKit 登录则指向 implement-saaskit,但仍在此写路由守卫;将 SCALEKIT_ENVIRONMENT_URL、SCALEKIT_CLIENT_ID、SCALEKIT_CLIENT_SECRET 写入 .env(不要用 SCALEKIT_ENV_URL)。无 SDK 时安装 @scalekit-sdk/node 并初始化 ScalekitClient。Express 读取 req.cookies.accessToken(路径 '/api'),Next.js App Router 读取 getSession().accessToken,Django/FastAPI/Flask 检查 requires_auth 的 user["roles"]。requireAuth 必须挂在 requireRole/requirePermission 之前。客户端检查仅为 UX,服务端必须强制。

适用场景:需要按角色或权限保护 /api/* 等接口的服务端应用;可用 curl 携带登录 Cookie 或 Bearer 令牌验证:admin 返回 200,member 返回 403,无令牌返回 401。

限制:不编写登录、回调、注销(改用 implement-saaskit);不添加刷新或撤销;不自行解码 JWT,Node 没有 validateAccessTokenAndGetClaims;不发明角色名或环境变量值。SPA 改读 Authorization: Bearer。更多文档见 https://docs.scalekit.com/authenticate/authz/implement-access-control/。