2.2.0 • Published 2 years ago
koa-userauth v2.2.0
koa-userauth
koa user auth abstraction layer middleware.
Install
npm install koa-userauthUsage
koa-userauth is dependent on koa-session or koa-generic-session.
var koa = require('koa');
var userauth = require('koa-userauth');
var session = require('koa-generic-session');
var app = new koa();
app.keys = ['i m secret'];
app.use(session());
app.use(userauth({
match: '/user',
// auth system login url
loginURLFormatter: function (url) {
return 'http://login.demo.com/login?redirect=' + url;
},
// login callback and getUser info handler
getUser: async ctx => {
var token = this.query.token;
// get user
return user;
}
}));Arguments
If options.match or options.ignore is String instance,
we will use path-match transfer it to Regex instance.
/**
* User auth middleware.
*
* @param {Object} [options]
* - {String|Regex|Function(pathname, ctx)} match, detect which url need to check user auth.
* `''` empty string meaning match all, @see `path-match` package.
* - {String|Regex|Function(pathname, ctx)} ignore, detect which url no need to check user auth.
* If `match` exists, this argument will be ignored.
* - {Function(url, rootPath, ctx)} loginURLFormatter, format the login url.
* - {String} [rootPath], custom app url root path, default is '/'.
* - {String} [loginPath], default is '/login'.
* - {String} [loginCallbackPath], default is `options.loginPath + '/callback'`.
* - {String} [logoutPath], default is '/logout'.
* - {String} [userField], logined user field name on `this.session`, default is 'user', `this.session.user`.
* - {Async Function (ctx)} getUser, get user function, must get user info with `req`.
* - {Async Function (ctx, user)} [loginCallback], you can handle user login logic here,return [user, redirectUrl]
* - {Function(ctx)} [loginCheck], return true meaning logined. default is `true`.
* - {Async Function (ctx, user)} [logoutCallback], you can handle user logout logic here.return redirectUrl
* - {Function(ctx)} [getRedirectTarget], customize how to get the redirect target after login
* @return {Async Function (next)} userauth middleware
* @public
*/Login flow
- unauth user, redirect to
$loginPath?redirect=$currentURL - user visit
$loginPath, redirect tooptions.loginURLFormatter()return login url. - user visit $loginCallbackPath, handler login callback logic.
- If user login callback check success, will set
req.session[userField], and redirect to$currentURL. - If login check callback error, next(err).
- user visit
$logoutPath, setreq.session[userField] = null, and redirect back.

License
2.2.0
2 years ago
2.1.0
7 years ago
1.4.4
8 years ago
2.0.1
8 years ago
2.0.0
8 years ago
1.4.3
8 years ago
1.4.2
8 years ago
1.4.1
8 years ago
1.4.0
9 years ago
1.3.1
9 years ago
1.3.0
9 years ago
1.2.3
10 years ago
1.2.2
10 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.1.4
11 years ago
1.1.3
11 years ago
1.1.2
11 years ago
1.1.1
11 years ago
1.1.0
11 years ago
1.0.0
11 years ago
0.0.1
12 years ago
0.0.0
12 years ago