同步操作将从 ittqqzz/NodeJSBlog 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*!* cookie-parser* Copyright(c) 2014 TJ Holowaychuk* Copyright(c) 2015 Douglas Christopher Wilson* MIT Licensed*/'use strict';/*** Module dependencies.* @private*/var cookie = require('cookie');var signature = require('cookie-signature');/*** Module exports.* @public*/module.exports = cookieParser;module.exports.JSONCookie = JSONCookie;module.exports.JSONCookies = JSONCookies;module.exports.signedCookie = signedCookie;module.exports.signedCookies = signedCookies;/*** Parse Cookie header and populate `req.cookies`* with an object keyed by the cookie names.** @param {string|array} [secret] A string (or array of strings) representing cookie signing secret(s).* @param {Object} [options]* @return {Function}* @public*/function cookieParser(secret, options) {return function cookieParser(req, res, next) {if (req.cookies) {return next();}var cookies = req.headers.cookie;var secrets = !secret || Array.isArray(secret)? (secret || []): [secret];req.secret = secrets[0];req.cookies = Object.create(null);req.signedCookies = Object.create(null);// no cookiesif (!cookies) {return next();}req.cookies = cookie.parse(cookies, options);// parse signed cookiesif (secrets.length !== 0) {req.signedCookies = signedCookies(req.cookies, secrets);req.signedCookies = JSONCookies(req.signedCookies);}// parse JSON cookiesreq.cookies = JSONCookies(req.cookies);next();};}/*** Parse JSON cookie string.** @param {String} str* @return {Object} Parsed object or undefined if not json cookie* @public*/function JSONCookie(str) {if (typeof str !== 'string' || str.substr(0, 2) !== 'j:') {return undefined;}try {return JSON.parse(str.slice(2));} catch (err) {return undefined;}}/*** Parse JSON cookies.** @param {Object} obj* @return {Object}* @public*/function JSONCookies(obj) {var cookies = Object.keys(obj);var key;var val;for (var i = 0; i < cookies.length; i++) {key = cookies[i];val = JSONCookie(obj[key]);if (val) {obj[key] = val;}}return obj;}/*** Parse a signed cookie string, return the decoded value.** @param {String} str signed cookie string* @param {string|array} secret* @return {String} decoded value* @public*/function signedCookie(str, secret) {if (typeof str !== 'string') {return undefined;}if (str.substr(0, 2) !== 's:') {return str;}var secrets = !secret || Array.isArray(secret)? (secret || []): [secret];for (var i = 0; i < secrets.length; i++) {var val = signature.unsign(str.slice(2), secrets[i]);if (val !== false) {return val;}}return false;}/*** Parse signed cookies, returning an object containing the decoded key/value* pairs, while removing the signed key from obj.** @param {Object} obj* @param {string|array} secret* @return {Object}* @public*/function signedCookies(obj, secret) {var cookies = Object.keys(obj);var dec;var key;var ret = Object.create(null);var val;for (var i = 0; i < cookies.length; i++) {key = cookies[i];val = obj[key];dec = signedCookie(val, secret);if (val !== dec) {ret[key] = dec;delete obj[key];}}return ret;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。