@casbinjs/core

中文文档
0.0.2发布于 2026/03/19ISCTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 5875

CasbinJS Core

原始使用文档
文档目录8 节
  1. Installation
  2. Usage
  3. Create an authorizer
  4. Check permissions
  5. Mutate policies at runtime
  6. API
  7. createAuthorizer(options?)
  8. Authorizer

@casbinjs/core

Framework-agnostic authorization core for CasbinJS. For thorough examples including role-based access, resource grouping, action inheritance, and framework integrations, see the main README. Wraps casbin-core with a clean async API for permission checks and runtime policy management.

Installation

npm install @casbinjs/core

Usage

Create an authorizer

import { createAuthorizer } from '@casbinjs/core';

const authorizer = await createAuthorizer({
  subject: 'alice',
  organization: 'org-1',
  model: `
    [request_definition]
    r = sub, res, org, act
    [policy_definition]
    p = sub, res, org, act, eft
    [policy_effect]
    e = some(where (p.eft == allow))
    [matchers]
    m = r.sub == p.sub && r.org == p.org && r.res == p.res && r.act == p.act
  `,
  policies: [
    ['p', 'alice', 'document:123', 'org-1', 'read', 'allow'],
  ],
});

Check permissions

await authorizer.can('read', 'document:123');       // true
await authorizer.canAny(['read', 'write'], 'document:123'); // true
await authorizer.canAll(['read', 'write'], 'document:123'); // false

Mutate policies at runtime

await authorizer.addPolicy(['p', 'alice', 'document:123', 'org-1', 'write', 'allow']);
await authorizer.removePolicy(['p', 'alice', 'document:123', 'org-1', 'write', 'allow']);
await authorizer.replacePolicies([
  ['p', 'alice', 'document:456', 'org-1', 'read', 'allow'],
]);

API

createAuthorizer(options?)

Creates and initializes an Authorizer instance.

OptionTypeDescription
modelstringCasbin model definition. Falls back to a basic sub, obj, act model if omitted.
policiesstring[][]Initial policy rules.
subjectstringThe current user/subject for permission checks.
organizationstringThe organization scope for permission checks.

Authorizer

MethodSignatureDescription
can(action, resource) => Promise<boolean>Check a single permission.
canAny(actions, resource) => Promise<boolean>Returns true if at least one action is allowed.
canAll(actions, resource) => Promise<boolean>Returns true only if all actions are allowed.
addPolicy(policy) => Promise<void>Add a policy rule.
removePolicy(policy) => Promise<void>Remove a policy rule.
replacePolicies(policies) => Promise<void>Replace all policies atomically.
getEnforcer() => Enforcer | nullAccess the underlying casbin-core enforcer.

版本与发布记录

@casbinjs/core 共发布 3 个版本,首次发布于 2026/03/18;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.2latest2026/03/197 个月前
0.0.12026/03/187 个月前
1.0.02026/03/187 个月前

关于 @casbinjs/core 的常见问题

@casbinjs/core 是什么?

CasbinJS Core

如何安装 @casbinjs/core?

在项目目录运行 npm install @casbinjs/core,或使用 pnpm add / yarn add / bun add。

@casbinjs/core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@casbinjs/core 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@casbinjs/core 可以商用吗?

@casbinjs/core 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@casbinjs/core 的下载量有多少?

根据 npm 官方下载统计,@casbinjs/core 在 2026/10/09 – 2026/11/07 这 30 天内被下载 5,875 次,日均约 196 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@casbinjs/core 还在维护吗?

最新版本 0.0.2 发布于 2026/03/19(7 个月前);至今共发布 3 个版本,其中过去 12 个月发布了 3 个;首次发布于 2026/03/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。