From 71ff1c31f8f1c98b9bbef6cf8e78ba9dd48e70ac Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Tue, 6 Jun 2017 16:49:51 -0600 Subject: [PATCH] moved plugin to lazy load --- services/passport.js | 1 + services/users.js | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/services/passport.js b/services/passport.js index 03602cdb6..d42dfa295 100644 --- a/services/passport.js +++ b/services/passport.js @@ -40,6 +40,7 @@ const SetTokenForSafari = (req, res, token) => { if (browser.ios || browser.safari) { res.cookie('authorization', token, { httpOnly: true, + secure: process.env.NODE_ENV === 'production', expires: new Date(Date.now() + ms(JWT_EXPIRY)) }); } diff --git a/services/users.js b/services/users.js index 5c6440a0e..9bca10ea5 100644 --- a/services/users.js +++ b/services/users.js @@ -930,16 +930,21 @@ module.exports = class UsersService { // Extract all the tokenUserNotFound plugins so we can integrate with other // providers. -const tokenUserNotFoundHooks = require('./plugins') - .get('server', 'tokenUserNotFound') - .map(({plugin, tokenUserNotFound}) => { - debug(`added plugin '${plugin.name}' to tokenUserNotFound hooks`); +let tokenUserNotFoundHooks = null; - return tokenUserNotFound; - }); - -// Provide a function that +// Provide a function that can loop over the hooks and search for a provider +// can crack the token to a user. const lookupUserNotFound = async (token) => { + if (!Array.isArray(tokenUserNotFoundHooks)) { + tokenUserNotFoundHooks = require('./plugins') + .get('server', 'tokenUserNotFound') + .map(({plugin, tokenUserNotFound}) => { + debug(`added plugin '${plugin.name}' to tokenUserNotFound hooks`); + + return tokenUserNotFound; + }); + } + for (let hook of tokenUserNotFoundHooks) { let user = await hook(token); if (user !== null && typeof user !== 'undefined') {