Skip to content

Commit

Permalink
adding LRU cache for user tokens
Browse files Browse the repository at this point in the history
  • Loading branch information
Erez Freiberger committed Dec 18, 2016
1 parent 4275bc6 commit 0b22254
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
15 changes: 9 additions & 6 deletions lib/authHandlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ var sessions = require('client-sessions'),
bodyParser = require('body-parser'),
config = require('./config'),
parseDuration = require('parse-duration');
LRUMap = require('lru_map');

var secondarySessionTokens = new LRUMap.LRUMap(10);

var secondarySessionTokens = {}

//
// ---------------------- passport auth --------------------------
Expand Down Expand Up @@ -133,6 +135,7 @@ var secondarySessionTokens = {}
var neededScope = ['user:info', 'user:check-access', 'user:list-projects'];
var ensureAuthenticated = function(req, res, next) {
config.debugLog('in passport.ensureAuthenticated for req path ' + req.path);
console.log("EREZ:: in ensureAuthenticated with req.query.access_token " , req.query.access_token);
if (req.isAuthenticated()) {
config.debugLog('authenticated by request session.');
return next();
Expand All @@ -152,19 +155,19 @@ var secondarySessionTokens = {}
}

var handleSSOSetup = function(req, res, next) {
console.log("EREZ handleSSOSetup: ", req.query.access_token);
secondarySessionTokens[req.query.user_token] = req.query.access_token;
console.log("EREZ handleSSOSetup: access_token: ", req.query.access_token);
console.log("EREZ handleSSOSetup: user_token: ", req.query.user_token);
secondarySessionTokens.set(req.query.user_token, req.query.access_token);
next();
}

var handleSSOLogin = function(req, res, next) {
console.log("EREZ handleSSOLogin: req.query = ", req.query);
if (req.query.user_token) {
console.log("EREZ handleSSOLogin: req has user token!!");
req.query.access_token = secondarySessionTokens[req.query.user_token];
//req.user.token = secondarySessionTokens[req.query.user_token];
req.query.access_token = secondarySessionTokens.get(req.query.user_token);
secondarySessionTokens.delete(req.query.user_token);
console.log("EREZ handleSSOLogin: req.query = ", req.query);
//res.redirect('/auth/token');
}
console.log("EREZ handleSSOLogin: next()");
next();
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"passport-oauth2": "^1.1.2",
"request": "^2.60.0",
"url-join": "0.0.1",
"yargs": "^3.18.0"
"yargs": "^3.18.0",
"lru_map": "^0.3.2"
}
}

0 comments on commit 0b22254

Please sign in to comment.