Koa-Authz
Koa-Authz is an authorization middleware for Koa, it's based on Node-Casbin
: https://github.com/casbin/node-casbin.
Installation
use casbin v2.x
npm install casbin@2 koa-authz@2 --save
use casbin v3.x
npm install casbin@3 koa-authz@3 --save
Simple Example
const casbin = const Koa = const app = const authz = // responseapp // use authz middlewareapp // reload routesconst router = prefix: '/user'routerrouterapp app
Use a customized authorizer
This package provides BasicAuthorizer
, it uses HTTP Basic Authentication
as the authentication method.
If you want to use another authentication method like OAuth, you needs to extends BasicAuthorizer
as below:
// override function { const username = thisctxstateuser return username } app
How to control the access
The authorization determines a request based on {subject, object, action}
, which means what subject
can perform what action
on what object
. In this plugin, the meanings are:
subject
: the logged-on user nameobject
: the URL path for the web resource like "dataset1/item1"action
: HTTP method like GET, POST, PUT, DELETE, or the high-level actions you defined like "read-file", "write-blog"
For how to write authorization policy and other details, please refer to the Casbin's documentation.
Getting Help
License
This project is licensed under the Apache 2.0 license.