second
[josuexyz/.git] / node_modules / cookie-parser / README.md
1 # cookie-parser
2
3 [![NPM Version][npm-version-image]][npm-url]
4 [![NPM Downloads][npm-downloads-image]][npm-url]
5 [![Build Status][travis-image]][travis-url]
6 [![Test Coverage][coveralls-image]][coveralls-url]
7
8 Parse `Cookie` header and populate `req.cookies` with an object keyed by the cookie
9 names. Optionally you may enable signed cookie support by passing a `secret` string,
10 which assigns `req.secret` so it may be used by other middleware.
11
12 ## Installation
13
14 ```sh
15 $ npm install cookie-parser
16 ```
17
18 ## API
19
20 ```js
21 var express = require('express')
22 var cookieParser = require('cookie-parser')
23
24 var app = express()
25 app.use(cookieParser())
26 ```
27
28 ### cookieParser(secret, options)
29
30 - `secret` a string or array used for signing cookies. This is optional and if not specified, will not parse signed cookies. If a string is provided, this is used as the secret. If an array is provided, an attempt will be made to unsign the cookie with each secret in order.
31 - `options` an object that is passed to `cookie.parse` as the second option. See [cookie](https://www.npmjs.org/package/cookie) for more information.
32   - `decode` a function to decode the value of the cookie
33
34 ### cookieParser.JSONCookie(str)
35
36 Parse a cookie value as a JSON cookie. This will return the parsed JSON value if it was a JSON cookie, otherwise it will return the passed value.
37
38 ### cookieParser.JSONCookies(cookies)
39
40 Given an object, this will iterate over the keys and call `JSONCookie` on each value, replacing the original value with the parsed value. This returns the same object that was passed in.
41
42 ### cookieParser.signedCookie(str, secret)
43
44 Parse a cookie value as a signed cookie. This will return the parsed unsigned value if it was a signed cookie and the signature was valid. If the value was not signed, the original value is returned. If the value was signed but the signature could not be validated, `false` is returned.
45
46 The `secret` argument can be an array or string. If a string is provided, this is used as the secret. If an array is provided, an attempt will be made to unsign the cookie with each secret in order.
47
48 ### cookieParser.signedCookies(cookies, secret)
49
50 Given an object, this will iterate over the keys and check if any value is a signed cookie. If it is a signed cookie and the signature is valid, the key will be deleted from the object and added to the new object that is returned.
51
52 The `secret` argument can be an array or string. If a string is provided, this is used as the secret. If an array is provided, an attempt will be made to unsign the cookie with each secret in order.
53
54 ## Example
55
56 ```js
57 var express = require('express')
58 var cookieParser = require('cookie-parser')
59
60 var app = express()
61 app.use(cookieParser())
62
63 app.get('/', function (req, res) {
64   // Cookies that have not been signed
65   console.log('Cookies: ', req.cookies)
66
67   // Cookies that have been signed
68   console.log('Signed Cookies: ', req.signedCookies)
69 })
70
71 app.listen(8080)
72
73 // curl command that sends an HTTP request with two cookies
74 // curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello"
75 ```
76
77 ### [MIT Licensed](LICENSE)
78
79 [coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/cookie-parser/master
80 [coveralls-url]: https://coveralls.io/r/expressjs/cookie-parser?branch=master
81 [npm-downloads-image]: https://badgen.net/npm/dm/cookie-parser
82 [npm-url]: https://npmjs.org/package/cookie-parser
83 [npm-version-image]: https://badgen.net/npm/v/cookie-parser
84 [travis-image]: https://badgen.net/travis/expressjs/cookie-parser/master
85 [travis-url]: https://travis-ci.org/expressjs/cookie-parser