Add simple "blanket" basic auth with username / password. If you require anything more specific just use the basic-auth module.
v4.x+ Breaking Change: This package no longer requires both a username and a password. Either or is supported, see #39 for more insight.
$ npm install koa-basic-auth
Password protect downstream middleware:
const auth = require('koa-basic-auth'); const Koa = require('koa'); const app = new Koa(); // custom 401 handling app.use(async (ctx, next) => { try { await next(); } catch (err) { if (401 == err.status) { ctx.status = 401; ctx.set('WWW-Authenticate', 'Basic'); ctx.body = 'cant haz that'; } else { throw err; } } }); // require auth app.use(auth({ name: 'tj', pass: 'tobi' })); // secret response app.use(async (ctx) => { ctx.body = 'secret'; }); app.listen(3000, function () { console.log('listening on port 3000'); });
Example request:
$ curl -H "Authorization: basic dGo6dG9iaQ==" http://localhost:3000/ -i
HTTP/1.1 200 OK
X-Powered-By: koa
Content-Type: text/plain; charset=utf-8
Content-Length: 6
Date: Sat, 30 Nov 2013 19:35:17 GMT
Connection: keep-alive
secret
Using the mount middleware you may specify auth for a given prefix:
const mount = require('koa-mount'); const auth = require('koa-basic-auth'); app.use(mount('/admin', auth({ name: 'tobi', pass: 'ferret' })));
MIT
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4