在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:node-casbin/koa-authz开源软件地址:https://github.com/node-casbin/koa-authz开源编程语言:JavaScript 100.0%开源软件介绍:Koa-AuthzKoa-Authz is an authorization middleware for Koa, it's based on Installationuse casbin v2.xnpm install casbin@2 koa-authz@2 --save use casbin v3.xnpm install casbin@3 koa-authz@3 --save Simple Exampleconst casbin = require('casbin')
const Koa = require('koa')
const app = new Koa()
const authz = require('koa-authz')
// response
app.use(async (ctx, next) => {
const start = new Date()
await next()
console.log(new Date() - start)
})
// use authz middleware
app.use(authz({
newEnforcer: async() => {
// load the casbin model and policy from files, database is also supported.
const enforcer = await casbin.newEnforcer('authz_model.conf', 'authz_policy.csv')
return enforcer
}
}))
// reload routes
const router = require('koa-router')({prefix: '/user'})
router.get('/', (ctx) => {
ctx.body = {name: 'Chalin', age: 26}
})
router.put('/', (ctx) => {
ctx.body = {status: 'success'}
})
app.use(router.routes(), router.allowedMethods())
app.listen(3000) Use a customized authorizerThis package provides class MyAuthorizer extends BasicAuthorizer {
// override function
getUserName () {
const { username } = this.ctx.state.user
return username
}
}
app.use(authz({
newEnforcer: async () => {
// load the casbin model and policy from files, database is also supported.
const enforcer = await casbin.newEnforcer('examples/authz_model.conf', 'examples/authz_policy.csv')
return enforcer
},
authorizer: (ctx, option) => new MyAuthorizer(ctx, option)
})) How to control the accessThe authorization determines a request based on
For how to write authorization policy and other details, please refer to the Casbin's documentation. Getting HelpLicenseThis project is licensed under the Apache 2.0 license. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论