carcass-auth
Version:
(Node.js) Authentication middlewares, in Carcass style.
40 lines (32 loc) • 741 B
JavaScript
var carcass, unsign, validValue;
unsign = require('cookie-signature').unsign;
carcass = require('carcass');
validValue = carcass.object.validValue;
/**
* @return {Function} the helper.
*/
module.exports = function(options) {
var decodeSID;
validValue(options.secret);
/**
* Just a helper.
*
* @return {String} the unsigned session ID.
*/
return decodeSID = function(token) {
var sessionID;
if (token == null) {
return;
}
token = decodeURIComponent(token);
if (token.indexOf('s:') === 0) {
token = token.slice(2);
}
sessionID = unsign(token, options.secret);
if (sessionID && sessionID !== token) {
return sessionID;
} else {
return null;
}
};
};