Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (!callback) {
promise = new Promise(function(res, rej) {
callback = function(err, result) {
err ? rej(err) : res(result)
}
})
}
// read dynamo session table
let name = process.env.SESSION_TABLE_NAME || 'arc-sessions'
let secret = process.env.ARC_APP_SECRET || process.env.ARC_APP_NAME || 'fallback'
// TODO: uppercase 'Cookie' is not the header name on AWS Lambda; it's
// lowercase 'cookie' on lambda...
let jar = cookie.parse(request.headers && request.headers.Cookie? request.headers.Cookie || '': '')
let sesh = jar.hasOwnProperty('_idx')
let valid = unsign(jar._idx || '', secret)
// find or create a new session
let exec = sesh && valid? find.bind({}, name) : create.bind({}, name)
let params = sesh && valid? valid : {}
exec(params, callback)
return promise
}
const config = new Config()
config.set('app.appKey', SECRET)
const response = new Response(new Request(req, res), config)
response.cookie('cart_total', '20')
response.send('')
response.end()
})
const { headers } = await supertest(server).get('/').expect(200)
const encrypter = simpleEncryptor({
key: SECRET,
hmac: false
})
assert.strictEqual(
sig.unsign(
encrypter.decrypt(querystring.unescape(headers['set-cookie'][0].replace('cart_total=', ''))).replace('s:', ''),
SECRET
),
'20'
)
})
Object.keys(obj).forEach((function (key) {
_$jscoverage['utils.js'][187]++;
var val = obj[key];
_$jscoverage['utils.js'][188]++;
if (0 == val.indexOf("s:")) {
_$jscoverage['utils.js'][189]++;
val = signature.unsign(val.slice(2), secret);
_$jscoverage['utils.js'][190]++;
if (val) {
_$jscoverage['utils.js'][191]++;
ret[key] = val;
_$jscoverage['utils.js'][192]++;
delete obj[key];
}
}
}));
_$jscoverage['utils.js'][196]++;
exports.parseSignedCookie = function(str, secret){
return 0 == str.indexOf('s:')
? signature.unsign(str.slice(2), secret)
: str;
};
exports.parseSignedCookie = function(str, secret){
return 0 == str.indexOf('s:')
? signature.unsign(str.slice(2), secret)
: str;
};
exports.parseSignedCookie = function(str, secret){
return 0 == str.indexOf('s:')
? signature.unsign(str.slice(2), secret)
: str;
};
exports.parseSignedCookie = function(str, secret){
return 0 == str.indexOf('s:')
? signature.unsign(str.slice(2), secret)
: str;
};
function unsigncookie(val, secrets) {
for (var i = 0; i < secrets.length; i++) {
var result = signature.unsign(val, secrets[i]);
if (result !== false) {
return result;
}
}
return false;
}
exports.parseSignedCookie = function(str, secret){
return 0 == str.indexOf('s:')
? signature.unsign(str.slice(2), secret)
: str;
};
Object.keys(obj).forEach(function(key){
var val = obj[key];
if (0 == val.indexOf('s:')) {
val = signature.unsign(val.slice(2), secret);
if (val) {
ret[key] = val;
delete obj[key];
}
}
});
return ret;