| /*! |
| * cookie-parser |
| * MIT Licensed |
| */ |
| |
| /** |
| * Module dependencies. |
| */ |
| |
| var cookie = require('cookie'); |
| var parse = require('./lib/parse'); |
| |
| /** |
| * Parse Cookie header and populate `req.cookies` |
| * with an object keyed by the cookie names. |
| * |
| * @param {String} [secret] |
| * @param {Object} [options] |
| * @return {Function} |
| * @api public |
| */ |
| |
| exports = module.exports = function cookieParser(secret, options){ |
| return function cookieParser(req, res, next) { |
| if (req.cookies) return next(); |
| var cookies = req.headers.cookie; |
| |
| req.secret = secret; |
| req.cookies = Object.create(null); |
| req.signedCookies = Object.create(null); |
| |
| // no cookies |
| if (!cookies) { |
| return next(); |
| } |
| |
| req.cookies = cookie.parse(cookies, options); |
| |
| // parse signed cookies |
| if (secret) { |
| req.signedCookies = parse.signedCookies(req.cookies, secret); |
| req.signedCookies = parse.JSONCookies(req.signedCookies); |
| } |
| |
| // parse JSON cookies |
| req.cookies = parse.JSONCookies(req.cookies); |
| |
| next(); |
| }; |
| }; |
| |
| /** |
| * Export parsing functions. |
| */ |
| |
| exports.JSONCookie = parse.JSONCookie; |
| exports.JSONCookies = parse.JSONCookies; |
| exports.signedCookie = parse.signedCookie; |
| exports.signedCookies = parse.signedCookies; |