handle_UPDATE_URL: function (payload) { var isPayloadString = ('string' === typeof payload); var url = isPayloadString ? payload : payload.url; var host = isPayloadString ? undefined : payload.host; var ohost = this._get('url').host; var M = url.match(/^(?:(https?:)\/\/(([^:\/]+)(:([^\/]+))?))?([^#?]*)(\\?[^#]*)?(#.*)?$/); var N = host ? host.match(/^([^:]+)(:(.+))?$/) : []; var search = M[7] || ''; var hash = M[8] || ''; var URL = { protocol: fluxex.protocol || M[1] || '', hostname: fluxex.hostname || M[3] || N[1] || '', port: fluxex.port || M[5] || N[3] || '', pathname: M[6] || '', search: search, hash: hash, query: payload.query || querystring.decode(search.substring(1)) || {} }; this._set('method', payload.method || 'GET'); URL.host = URL.hostname + ((URL.port !== '') ? (':' + URL.port) : ''); URL.href = URL.protocol + (URL.protocol ? '//' : '') + URL.host + URL.pathname + URL.search + URL.hash; if (ohost && (ohost !== URL.host)) { throw new Error('Try to set URL to different host: ' + URL.host + ' , original host is: ' + ohost); } this._set('url', URL); },
c.authUri(opts, function(e, uri) { assert.equal(e, null); var q = querystring.decode(url.parse(uri).query); assert.equal(q.state, opts.state); assert.equal(q.scope, opts.scope); });
function checkLocation() { if(!w.location) { clearInterval(interval) return cb(new Error('oauth dialog closed')) } if(w.location.hostname === window.location.hostname) { clearInterval(interval) var search = w.location.search.substr(1) // remove ? on beginning var query = qs.decode(search) var err = [] if(query.state !== state) { err.push('mismatching state ('+state+' != '+query.state+')') } if(query.error) { err.push(query.error) } if(err.length > 0) { return cb(new Error(err.join())) } w.close() auth.tradeCode(res.meta, res.auth, query.code, onToken) } }
storage.getItem(namespace, function(error, dataReturned) { var receivedArgs = requestMock.post.firstCall.args[0].body; var url = requestMock.post.firstCall.args[0].url; var args = querystring.decode(receivedArgs); url.indexOf('change_passphrase').should.not.be.equal(-1); requestMock.post.firstCall.args[0].headers.Authorization.should.be.equal(new Buffer(email + ':' + oldSecret).toString('base64')); args.newPassphrase.should.be.equal(newSecret); done(); });
function(err, data) { if (err) { return cb(err); } else { data = qs.decode(data); return cb(null, data); } }
route.get(/^\/state/, function (req, res, next) { var opts = qs.decode(url.parse(req.url).query) var d = {} for(var name in tbr.queries) { var q = tbr.queries[name] if('function' === typeof q.dump) d[name] = filter(q, opts) } res.end(JSON.stringify(d, null, 2) + '\n') }),
route.get(/^\/state\/([\w-_.]+)/, function (req, res, next) { var name = req.params[0] var query = tbr.queries[name] var opts = qs.decode(url.parse(req.url).query) if(!query) return next(new Error('unknown query:'+name)) var data = filter(query, opts) res.end(JSON.stringify(data, null, 2) + '\n') }),
req.on('end', function() { if (buf) { try { let ob = qs.decode(buf); req.body = ob; } catch (e) { console.log('taobao body parser fail!'); console.log(e); } } next(); });
var cookie = function() { var cookie = querystring.decode(document.cookie, '; '); var client = this; if (cookie['__dsat']) { var token = atob(cookie['__dsat']); client.setToken(token); return true; } else { return false; } }
request(options, function(err, res, body) { if (cb) { try { body = JSON.parse(body); } catch (e) { // facebook returns a query string as the response body for certain requests if (body.indexOf('=') !== -1) { body = querystring.decode(body); } } cb(body); } });
queryShouldChangeHistory(newQuery, route) { const search = location.search && location.search.substr(1); const currentQuery = search ? queryString.decode(search) : {}; const diffA = Object.entries(newQuery).reduce((acc, [key, value]) => ([ ...acc, ...(currentQuery[key] !== value) ? [key] : [] ]), []); const diffB = Object.entries(currentQuery).reduce((acc, [key, value]) => ([ ...acc, ...(newQuery[key] !== value) ? [key] : [] ]), []); return [...new Set([...diffA, ...diffB])] .map((parameter) => this.getReduxObject(parameter, route).addHistory) .includes(true); }
authenticate(req, res, ctx, function (err) { if (err) { return next(err); } debug("authenticated."); ctx.url = req.query.url; var parts = url.parse(ctx.url); var query = qs.decode(parts.query); query.e = findE(ctx); parts.search = "?" + qs.encode(query); delete u.search; var urlString = u.format(); debug("download " + req.path + " => " + urlString); return res.status(200).send([ config.accessKey, utils.encodeSign(urlString, config.secretKey) ].join(':')); });
c.authUri({}, function(e, uri) { assert.equal(e, null); var o = url.parse(uri); var q = querystring.decode(o.query); assert.equal(q.client_id, CLIENT_OPTS.clientId); assert.equal(q.redirect_uri, CLIENT_OPTS.redirectUri); assert.equal(q.response_type, 'code'); var p = url.parse(CLIENT_OPTS.redirectUri); assert.equal(o.protocol, p.protocol); assert.equal(o.hostname, p.hostname); assert.equal(q.state, undefined); assert.equal(q.scope, undefined); done(); });
req.on('end', function(){ var message = querystring.decode(content); var push = JSON.parse(message.payload); var repository = push.repository.name + "-" + push.ref.replace('refs/heads/', ''); var url = "http://mysterygame-jenkins.cloudapp.net:8080" + "/job/" + repository + "/build"; if(process.env.API_TOKEN) url += ("?token=" + process.env.API_TOKEN); if(process.env.API_TOKEN_USER && process.env.API_TOKEN) { var auth = process.env.API_TOKEN_USER + ":" + process.env.API_TOKEN; url = url.replace("http://", "http://" + auth + "@"); } request.get(url).pipe(res); });
request.post(opts, function(err, resp, body){ req.session.github = req.session.github || {}; if(err) { res.send(err.message); } else { req.session.github.access_token = qs.decode(body).access_token; githubProxy.getCurrentUserInfo(req.session.github.access_token, function (err, data) { console.log('HOP', req.session); if (err) { res.send(err); } else { var d = JSON.parse(data); req.session.github.username = d.login; res.redirect('/'); } }); } });
req.on('end', function(){ if(!process.env.JENKINS_URL) throw new Error('we require the JENKINS_URL environment variable to be set'); var message = querystring.decode(content); var push = JSON.parse(message.payload); var repository = push.repository.owner.name + "-" + push.repository.name + "-" + push.ref.replace('refs/heads/', ''); var url = process.env.JENKINS_URL + "/job/" + repository + "/build"; if(process.env.API_TOKEN) url += ("?token=" + process.env.API_TOKEN); if(process.env.API_TOKEN_USER && process.env.API_TOKEN) { var auth = process.env.API_TOKEN_USER + ":" + process.env.API_TOKEN; url = url.replace("http://", "http://" + auth + "@"); } request.get(url).pipe(res); });
route.get(/^\/view\/([\w-_.]+)/, function (req, res, next) { var opts = qs.decode(url.parse(req.url).query) opts.name = req.params[0] if (!views.hasOwnProperty(opts.name)) { return next(new Error('view does not exist')); } try { pull( tbr.query(opts), pull.map(function (d) { return {key: d.key[2], value: d.value} }), opts.lines ? stringify.lines() : stringify(), toPull.sink(res) ) } catch (err) { return next(err) } }),
GET: function(req,res,opts) { //return all or part of a collection function forwardOrchResults(result) { //given result obj from Orchestrate db, strip away metadata // and forward the actual model data to client: var values = result.body.results.map(getValue); console.log("Returning array: "+JSON.stringify(values)); res.end(JSON.stringify(values)); //return JSON array to client } function handleFailure(err) { console.log("Error: "+err); res.end(err); } console.log("Processing GET request..."); console.log("Options:"+JSON.stringify(opts)); // parsedURL may include query like this: ?keys=1,2,3 var queryStr = opts.parsedUrl.query; if (queryStr) { // expect set of keys, search db for only those var queryObj = querystring.decode(opts.parsedUrl.query); var keyStr = queryObj.keys; if (!keyStr) throw "query includes no keys"; // turn '1,2,3' into 'key:(1 OR 2 OR 3)': var searchStr = "key:(" +keyStr.split(',').join(' OR ') +")"; console.log("Searching db for "+searchStr); // return subset of db: db.search(dbCollectionName, searchStr) .then(forwardOrchResults) .fail(handleFailure) } else { //no query; return entire db db.list(dbCollectionName) .then(forwardOrchResults) .fail(handleFailure) } },
handle_UPDATE_URL: function (payload) { var isPayloadString = ('string' === typeof payload), url = isPayloadString ? payload : payload.url, host = isPayloadString ? undefined : payload.host, M = url.match(/^(?:(https?:)\/\/(([^:\/]+)(:([^\/]+))?))?([^#?]*)(\\?[^#]*)?(#.*)?$/), N = host ? host.match(/^([^:]+)(:(.+))?$/) : [], search = M[7] || '', hash = M[8] || '', URL = { href: M[6] + search + hash, protocol: fluxex.protocol || M[1] || '', hostname: fluxex.hostname || M[3] || N[1] || '', port: fluxex.port || M[5] || N[3] || '', pathname: M[6] || '', search: search, hash: hash, query: querystring.decode(search.substring(1)) || {} }; URL.host = URL.hostname + ((URL.port !== '') ? (':' + URL.port) : ''); this._set('url', URL); },
var url = require("url"); var querystring = require("querystring"); var query = querystring.decode(url.parse(location.href).query); module.exports = query;
var linesByToken = _.groupBy(messages, function (msg) { return querystring.decode(msg).access_token; });
function url_params(url) { var query = url_utils.parse(url).query; return qs.decode(query); }
function *doLogin(username,password){ var email = username.split('@'); username = email[0]; var _user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36'; var _pt_login_sig = ''; var _verifycode = ''; var _pt_verifysession_v1 = ''; var _p = ''; var _salt = ''; var _status = 0; var redirect_url = ''; var image_url = ''; var __cookies = []; var _first = function (obj) { var k = _.first(_.keys(obj)); return [k, obj[k]]; }; var ptui_checkVC = function(a, d, b, f, c){ _salt = b; switch(a){ case "1": _status = a; //需要做验证码处理 image_url = 'https://ssl.captcha.qq.com/getimage?uin='+username+'&aid=522005705&cap_cd='+d+'&'+Math.random(); break; default: _pt_verifysession_v1 = f; _verifycode = d; try{ _p = Encryption.getEncryption(password, _salt, _verifycode, false); }catch(err){ debug('ptui_checkVC Error:',err.stack); } break; } }; var ptuiCB = function(l, o, b, k, d, a){ redirect_url = b; }; var _ckstr = function () { return _.uniq(__cookies) .map(function (c) { return _first(cookie.parse(c)); }) .map(function (c) { try{ var encode = function(val){ return val; } return cookie.serialize(c[0], c[1],{'encode':encode}); }catch(error){ debug('_ckstr Error:',error.stack); } }).join('; '); }; var _addck = function (response) { __cookies = __cookies.concat(response.headers['set-cookie'] || []); }; var _set_login_sig = function(){ try{ _.forEach(__cookies,function(i){ var i = cookie.parse(i); if(i['pt_login_sig'] !== undefined){ _pt_login_sig = i['pt_login_sig']; } }); }catch(err){ debug('_set_login_sig Error:',err.stack); } }; var _set_verifysession = function(){ try{ _.forEach(__cookies,function(i){ var i = cookie.parse(i); if(i['verifysession'] !== undefined){ _pt_verifysession_v1 = i['verifysession']; } }); }catch(err){ debug('_set_verifysession Error:',err.stack); } }; /** * 第一次请求登录页面 */ var ptlogin_url = 'https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=522005705&daid=4&s_url=https://mail.qq.com/cgi-bin/login?vt=passport%26vm=wpt%26ft=loginpage%26target=&style=25&low_login=1&proxy_url=https://mail.qq.com/proxy.html&need_qr=0&hide_border=1&border_radius=0&self_regurl=http://zc.qq.com/chs/index.html?type=1&app_id=11005?t=regist&'; try{ var res = yield request(ptlogin_url,{ method:'GET', headers:{ 'Host':'xui.ptlogin2.qq.com', 'User-Agent':_user_agent } }); }catch(err){ debug('第一次请求登录页面 Error:',err.stack); return false; } _addck(res[1]); _set_login_sig(); /** * QQ Check操作 */ var check_data = { 'regmaster':'', 'pt_tea':1, 'pt_vcode':0, 'uin':username, 'appid':'522005705', 'js_ver':'10123', 'js_type':1, 'login_sig':_pt_login_sig, 'u1':'https://mail.qq.com/cgi-bin/login?vt=passport&vm=wpt&ft=loginpage&target=', 'r':Math.random() }; var check_url = 'https://ssl.ptlogin2.qq.com/check'; check_url = [check_url, queryString.encode(check_data)].join('?'); var res = yield request(check_url,{ method:'GET', headers:{ 'Referer':ptlogin_url, 'Host':'ssl.ptlogin2.qq.com', 'Cookie':_ckstr(), 'User-Agent':_user_agent }, timeout:10000 }); _addck(res[1]); try{ //对check结果做判断 - ptui_checkVC() eval(res[0].toString()); if(image_url && _status){ try{ var image_res = yield request(image_url,{ method:'GET', headers:{ 'Host':'ssl.captcha.qq.com', 'User-Agent':_user_agent } }); }catch(err){ debug('对check结果做判断 Error:',err.stack); } _addck(image_res[1]); try{ var json = {'code':''}; var string = JSON.stringify(json); yield writeFile('./captcha.json',string); var captcha_path = './'+username+'_captcha_code.jpg'; var res = yield writeFile(captcha_path,image_res[0]); }catch(err){ debug(err.stack); } debug('验证码地址:',captcha_path); debug('请将图片中的验证码输入到此文件:captcha_code.json'); //获取验证码的cookie里面 _set_verifysession(); ///====================获取验证码 _verifycode = yield set_captcha_code(); } _p = Encryption.getEncryption(password,_salt,_verifycode,false); }catch(err){ debug('ptui_checkVC Error:',err.stack); return false; } /** * 登录提交 */ var login_url = 'https://ssl.ptlogin2.qq.com/login'; var u1_url = 'http://mail.qq.com/cgi-bin/login'; var u1_data = { vt:'passport', vm:'wpt', ft:'ptlogin', errtemplate:'dm_loginpage', aliastype:'other', dmtype:'domain', loginEntry:1, target:'', account:username } u1_url = [u1_url, queryString.encode(u1_data)].join('?'); var login_data = { 'u':username, 'verifycode':_verifycode, 'pt_vcode_v1':0, 'pt_verifysession_v1':_pt_verifysession_v1, 'p':_p, 'pt_randsalt':0, 'u1':u1_url, 'ptredirect':1, 'h':1, 't':1, 'g':1, 'from_ui':1, 'ptlang':'2052', 'action':'2-3-1432202218068', 'js_ver':10123, 'js_type':1, 'login_sig':_pt_login_sig, 'pt_uistyle':25, 'aid':'522005705', 'daid':4 }; login_url = [login_url,queryString.encode(login_data)].join('?'); debug('login_url:',login_url); try{ var res = yield request(login_url,{ method:'GET', headers:{ 'Cookie':_ckstr(), 'Referer':ptlogin_url, 'Host':'ssl.ptlogin2.qq.com', 'User-Agent':_user_agent } }); _addck(res[1]); debug('login res:',res[0].toString()); //执行返回的结果 获取成功登录的跳转地址 eval(res[0].toString()); }catch(err){ debug('登录提交 Error:',err.stack); return false; } /** * 验证check_sig并获取跳转地址 */ if(!redirect_url){ throw new Error('登录失败'); } try{ var res = yield request(redirect_url,{ method:'GET', headers:{ 'Cookie':_ckstr(), 'Referer':ptlogin_url, 'Host':'ssl.ptlogin2.qq.com', 'User-Agent':_user_agent } }); debug(res); _addck(res[1]); var location_url = ''; if(res['1']['status'] == 302){ location_url = res[1]['headers']['location']; } }catch(err){ debug('验证check_sig Error:',err.stack); return false; } //做302 跳转请求 - if(location_url){ try{ var redirect_res = yield request(location_url,{ method:"GET", headers:{ 'Cookie':_ckstr(), 'Referer':redirect_url, 'Host':'mail.qq.com', 'User-Agent':_user_agent } }); _addck(redirect_res[1]); var javascript = redirect_res[0].toString().replace(/ +/g, ' ').replace(/\r\n/g,' ').replace(/\n/g,' ').match(/<script>(.+?)<\/script>/g); var urlHead_res = javascript[1].replace(/<script>(.+?)<\/script>/g,'$1'); var targetUrl = ''; var urlHead_arr = urlHead_res.split('; '); var urlHead = urlHead_arr[0].match(/urlHead="(.*?)"/g,'$1'); urlHead = urlHead[0].replace(/urlHead="(.*?)"/g,'$1'); eval(urlHead_arr[4]); var r = javascript[1].match(/targetUrl\+="(.*?)";/g,'$1'); r = r[0].replace(/targetUrl\+="(.*?)";/g,'$1'); targetUrl = targetUrl+r; var tmp_targetUrl = targetUrl.split('?'); if(tmp_targetUrl[1]){ var tmp_targetUrl_arr = queryString.decode(tmp_targetUrl[1]); if(tmp_targetUrl_arr['sid']){ var tmp_arr = []; tmp_arr.push('Location_sid='+tmp_targetUrl_arr['sid']); __cookies = __cookies.concat(tmp_arr); } } }catch(err){ debug(err.stack); return false; } if(targetUrl){ try{ var target_res = yield request(targetUrl,{ method:'GET', headers:{ 'Cookie':_ckstr(), 'Host':'mail.qq.com', 'User-Agent':_user_agent } }); _addck(target_res[1]); }catch(err){ debug(err.stack); return false; } }else{ debug(new Error('目标地址不存在')); return false; } }else{ debug(new Error('302跳转地址不存在')); return false; } return _ckstr(); }
RedisStore.prototype.key = function (key) { if (typeof key === 'object') key = qs.decode(key); return this.ns ? this.ns + this.separator + key : key; };