Frontend Usage
Casbin.js is a Casbin extension that simplifies access control management in frontend applications.
Cài đặt
npm install casbin.js
npm install casbin
hoặc
yarn add casbin.js
Frontend Frameworks
| Framework | Loại | Tác giả | Mô tả |
|---|---|---|---|
| react-authz | React | Casbin | Wrapper React cho Casbin.js |
| rbac-react | React | @daobeng | Role-Based Access Control in React using Higher-Order Components, CASL, and Casbin.js |
| vue-authz | Vue | Casbin | Wrapper Vue cho Casbin.js |
| angular-authz | Angular | Casbin | Wrapper Angular cho Casbin.js |
Bắt đầu nhanh
Configure Casbin.js in manual mode to set permissions explicitly in your frontend application:
const casbinjs = require("casbin.js");
// Set the user's permission:
// He/She can read `data1` and `data2` objects and can write `data1` object
const permission = {
"read": ["data1", "data2"],
"write": ["data1"]
}
// Run casbin.js in manual mode, which requires you to set the permission manually.
const authorizer = new casbinjs.Authorizer("manual");
With an authorizer instance, you can check permissions using authorizer.can() and authorizer.cannot(). Both methods return JavaScript Promises (see MDN documentation), so use the then() method to handle results:
result = authorizer.can("write", "data1");
result.then((success, failed) => {
if (success) {
console.log("you can write data1");
} else {
console.log("you cannot write data1");
}
});
// output: you can write data1
The cannot() method works identically:
result = authorizer.cannot("read", "data2");
result.then((success, failed) => {
if (success) {
console.log("you cannot read data2");
} else {
console.log("you can read data2");
}
});
// output: you can read data2
The success parameter indicates that the query completed without errors—not that permission was granted. Similarly, failed relates to query errors, not permission denial.
See our React example for practical Casbin.js usage.