@climba03003/fastify-endpoint-rbac
v1.1.0
Published
This plugin used to manage the endpoint role-base access control. It will collect all the specified roles and you can specify how to check the access control globally or per-route.
Downloads
5
Readme
@climba03003/fastify-endpoint-rbac
This plugin used to manage the endpoint role-base access control. It will collect all the specified roles and you can specify how to check the access control globally or per-route.
Install
npm install @climba03003/fastify-endpoint-rbac --save
yarn add @climba03003/fastify-endpoint-rbac
Usage
import FastifyRBAC from '@climba03003/fastify-endpoint-rbac'
fastify.register(FastifyRBAC, {
// how to retrieve account roles
retrieveAccountRoles(request, reply) {
return [] // must return array or promise array
},
// how to check rbac globally
checkRBAC(routeRoles, accountRoles) {
return true // must return boolean or promise boolean
},
// change the error message when return 403
forbiddenMessage: 'No Privilege'
})
fastify.get(
'/',
{
config: {
rbac: {
// specify roles for this route
roles: ['index:read'],
// skip rbac check at early stage even if roles is specified
skip: false,
// route base rbac check
checkRBAC(routeRoles, accountRoles) {
return true // must return boolean or promise boolean
},
}
}
}
)
Decorators
// Map of route and roles
fastify.rbac.routeRBAC
// Map {
// GET:/ => ['index:read']
// }
// Array of all roles
fastify.rbac.roles
// ['index:read']