connect-vtexid [![Build Status][travis-image]][travis-status]
==============

VTEX ID Authentication middleware for Connect.
Written in **coffee-script**

It automatticaly caches vtexid response and handles errors

## Installation
    $ npm install --save connect-vtexid

## Usage

Use it as any other Connect middleware

```js
var connect = require('connect')
var app = connect()

var FIVE_MINUTES = 5 * 60

var options = {
    ttl: FIVE_MINUTES
}

var connectVtexid = require('connect-vtexid')
middleware = connectVtexid(options)

app.use(middleware)
```

Can as well be used as a **grunt-contrib-connect** middleware

### Options

#### verbose

*Default: false*

Enables logging

### verbosityLevel

*Default: 1*

Controls the desired verbosity level.
Available options:
- 0: quiet mode
- 1: low verbosity
- 2: medium verbosity
- 3: high verbosity

#### ttl

*Default: 5 minutes*

Value (in seconds) setting how long the cache will live

#### replaceWhiteList

*Default: false*

Overrides default route `white-list` with an array of strings or regexes
Does not replace if values is false (default)

#### addToWhiteList

*Default: []*

Adds routes to current `white-list`.
It can be a string, a regexp or an array containing either strings or regexes

#### redirectUrl

*Default: /admin/login?ReturnUrl=*

String to vtexid redirect page
It is automatically added to the `white-list`

#### logoutUrl

*Default: /admin/logout*

String to logout route

#### useReturnUrl

*Default: true*

Set to false if you do not want to pass the request url as parameter to the redirectUrl

### Custom libs

#### URI White list

`white-list` sets a white list containing every public URI. It receives a `publicUris` parameter that is an array containing
all public uris. Each public uri must be either a String or a RegExp

*Default:*

- */admin/Content*
- */admin/Scripts*
- */meta/whoami*
- */^\/admin\/Site\/Login.aspx/*

#### Redirect url

`return-url` sets the vtexid redirect url.

#### Cookie parser

`cookie-parser` is a custom lib-independent cookie-parsing function.

#### Redirect

`redirect` is a custom lib-independent client-side redirect function.

#### Http errors

`http-errors` is a custom function for rendering error pages:
It receives the `res` object, a `statusCode` as parameter and an optional `customErrorPagePath`
, and returns an `errorRendering` function.

The `errorRendering` function receives an error message `body` and the vtexid `cookie` as parameters


[travis-image]: https://travis-ci.org/vtex/connect-vtexid.svg?branch=v0.1.2
[travis-status]: https://travis-ci.org/vtex/connect-vtexid
