ホームページ > 記事 > ウェブフロントエンド > Node.js Casbin について学ぶ
nodejs チュートリアル】
Casbin は次のことができます:
Casbin は次のことはできません:
# ID 認証 (つまり、ユーザーのユーザー名とパスワードの検証)。casbin はアクセス制御のみを担当します。 ID 認証を担当する他の特殊なコンポーネントがあり、その後 casbin がアクセス制御を実行する必要があり、この 2 つは連携して動作します。# NPMnpm install casbin --save# Yarnyarn add casbin
import { newEnforcer } from 'casbin';const enforcer = await newEnforcer('basic_model.conf', 'basic_policy.csv');
const sub = 'alice'; // 想要访问资源的用户。const obj = 'data1'; // 将要访问的资源。const act = 'read'; // 用户对资源执行的操作。const res = await enforcer.enforce(sub, obj, act);if (res) { // 允许 alice 读取数据1} else { // 拒绝请求,显示错误}静的ポリシー ファイルに加えて、
node-casbin
は実行時の権限管理用の API も提供します。たとえば、次のようにユーザーに割り当てられたすべてのロールを取得できます。 #const roles = await enforcer.getRolesForUser('alice');
その他の使用方法については、Management API と RBAC API を参照してください。
# Request definition[request_definition]r = sub, obj, act # Policy definition[policy_definition]p = sub, obj, act # Policy effect[policy_effect]e = some(where (p.eft == allow))# Matchers[matchers]m = r.sub == p.sub && r.obj == p.obj && r.act == p.act
ACL モデルのポリシーの例は次のとおりです:
p, alice, data1, read p, bob, data2, write
これは、次のことを意味します:
alice はデータを読み取ることができます1bob can write data2
# Matchers[matchers]m = r.sub == p.sub && r.obj == p.obj \ && r.act == p.act
# Matchers[matchers]m = r.obj == p.obj && r.act == p.act || r.obj in ('data2', 'data3')
より大きいことを確認する必要があります。そうでない場合は、パニックを引き起こします。
その他の操作については、govaluate をチェックしてください。 プログラミング関連の知識について詳しくは、
プログラミング入門をご覧ください。 !
以上がNode.js Casbin について学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。