1 | var middleware = require('./middleware')
|
2 |
|
3 | function storeCookies (cookies, url, header) {
|
4 | if (header) {
|
5 | var headers =
|
6 | header instanceof Array
|
7 | ? header
|
8 | : [header]
|
9 |
|
10 | headers.forEach(function (setCookieHeader) {
|
11 | cookies.setCookieSync(setCookieHeader, url)
|
12 | })
|
13 | }
|
14 | }
|
15 |
|
16 | module.exports = middleware('cookies', function (request, next, client) {
|
17 | var cookies
|
18 |
|
19 | if (client._options.cookies === true) {
|
20 | var toughCookie = require('tough-cookie')
|
21 | cookies = request.options.cookies = client._options.cookies = new toughCookie.CookieJar()
|
22 | } else {
|
23 | cookies = request.options.cookies
|
24 | }
|
25 |
|
26 | if (cookies) {
|
27 | request.headers.cookie = cookies.getCookieStringSync(request.url)
|
28 | return next().then(function (response) {
|
29 | storeCookies(cookies, response.url, response.headers['set-cookie'])
|
30 | return response
|
31 | })
|
32 | } else {
|
33 | return next()
|
34 | }
|
35 | })
|