![NPM version](https://camo.githubusercontent.com/d2310a3662ea6687ce8d40cf719b7bdaae756b139ec6b58024c4b28bd8c32689/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f407a636f6e672f6567672d63617362696e2e7376673f7374796c653d666c61742d737175617265)
![npm download](https://camo.githubusercontent.com/579522adcc3da366bc16d2240fb010b74992e333d8ee630207bf902f800c3edb/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f407a636f6e672f6567672d63617362696e2e7376673f7374796c653d666c61742d737175617265)
$ npm i @zcong/egg-casbin --save
Use a customized authorizer
// app/middleware/casbin.ts
import { authz } from '@zcong/egg-casbin'
export default authz
// {app_root}/config/config.default.ts
// ...
class MyAuthorizer extends DefaultAuthorizer {
// override function
getUserName(ctx: Context): string {
return ctx.user.username
}
}
config.casbin = {
enable: true,
newEnforcer: async() => {
const enforcer = await newEnforcer(`${__dirname}/authz_model.conf`, `${__dirname}/authz_policy.csv`)
return enforcer
},
authorizer: MyAuthorizer,
}
MIT