koa-redirect-loop
Version:
Prevent redirect loops with sessions since HTTP referrer header is unreliable and ensures sessions are saved upon redirect
77 lines (48 loc) • 2.22 kB
Markdown
# koa-redirect-loop
[](https://github.com/ladjs/koa-redirect-loop/actions/workflows/ci.yml)
[](https://github.com/sindresorhus/xo)
[](https://github.com/prettier/prettier)
[](https://lass.js.org)
[](LICENSE)
[](https://npm.im/koa-redirect-loop)
> Prevent redirect loops with sessions since HTTP referrer header is unreliable and ensures sessions are saved upon redirect
> Note that this package only supports `koa-generic-session`, since other packages do not expose a save method used in `res.end` override.
## Table of Contents
* [Install](#install)
* [Usage](#usage)
* [Options](#options)
* [Contributors](#contributors)
* [License](#license)
## Install
[npm][]:
```sh
npm install koa-redirect-loop
```
## Usage
```js
const Koa = require('koa');
const session = require('koa-generic-session');
const RedirectLoop = require('koa-redirect-loop');
const redirectLoop = new RedirectLoop({
defaultPath: '/',
maxRedirects: 5,
logger: console
});
const app = new Koa();
app.keys = [ 'secret' ];
app.use(session());
app.use(redirectLoop.middleware);
```
## Options
* `getDefaultPath` (Function) - function which accepts `ctx` argument and returns a path to fallback to, defaults to either `/${ctx.request.locale}` (e.g. if using `@ladjs/i18n`) or `/`
* `defaultPath` (String) - path to fallback to, defaults to `'/'`
* `maxRedirects` (Number) - maximum number of redirects to allow, defaults to `5`
* `console` (Object) - a logger instance, defaults to `console`
## Contributors
| Name | Website |
| -------------- | -------------------------- |
| **Nick Baugh** | <http://niftylettuce.com/> |
## License
[MIT](LICENSE) © [Nick Baugh](http://niftylettuce.com/)
##
[npm]: https://www.npmjs.com/