Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koajs/basic-auth
blanket basic auth middleware
https://github.com/koajs/basic-auth
Last synced: 2 months ago
JSON representation
blanket basic auth middleware
- Host: GitHub
- URL: https://github.com/koajs/basic-auth
- Owner: koajs
- Created: 2013-08-20T03:34:09.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2019-01-07T09:19:09.000Z (almost 6 years ago)
- Last Synced: 2024-04-14T13:08:39.005Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 19.5 KB
- Stars: 138
- Watchers: 6
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Changelog: History.md
Awesome Lists containing this project
- awesome-koa - basic-auth - blanket basic auth middleware (Middleware)
- think-awesome - koa-basic-auth - basic-auth.svg) | ![status](https://travis-ci.org/koajs/basic-auth.svg) | ![downloads](https://img.shields.io/npm/dm/koa-basic-auth.svg) | blanket basic auth middleware | (Koa Middlewares)
- awesome-koa - koa-basic-auth - 简单的用户密码基础授权。 ![](https://img.shields.io/github/stars/koajs/basic-auth.svg?style=social&label=Star) ![](https://img.shields.io/npm/dm/koa-basic-auth.svg?style=flat-square) (仓库 / 中间件)
README
# koa-basic-auth [![Build Status](https://travis-ci.org/koajs/basic-auth.png)](https://travis-ci.org/koajs/basic-auth)
Add simple "blanket" basic auth with username / password. If you require
anything more specific just use the [basic-auth](https://github.com/visionmedia/node-basic-auth) module.**v4.x+ Breaking Change:** This package no longer requires both a username and a password. Either or is supported, see [#39](https://github.com/jshttp/basic-auth/issues/39) for more insight.
## Installation
```js
$ npm install koa-basic-auth
```## Example
Password protect downstream middleware:
```js
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-alivesecret
Using the [mount](https://github.com/koajs/mount) middleware you may specify auth for a given prefix:
```js
const mount = require('koa-mount');
const auth = require('koa-basic-auth');app.use(mount('/admin', auth({ name: 'tobi', pass: 'ferret' })));
```## License
MIT