diff --git a/common/models/User-Identity.js b/common/models/User-Identity.js index f6815a38bc..5293dfbc48 100644 --- a/common/models/User-Identity.js +++ b/common/models/User-Identity.js @@ -15,6 +15,8 @@ const debug = debugFactory('fcc:models:userIdent'); export default function(UserIdent) { // original source // github.com/strongloop/loopback-component-passport + const createAccountMessage = + 'Accounts can only be created using GitHub or though email'; UserIdent.login = function( provider, authScheme, @@ -71,11 +73,11 @@ export default function(UserIdent) { const userObj = options.profileToUser(provider, profile, options); if (getSocialProvider(provider) !== 'github') { - return process.nextTick(() => cb( - new Error( - 'accounts can only be created using Github or though email' - ) - )); + const err = new Error(createAccountMessage); + err.userMessage = createAccountMessage; + err.messageType = 'info'; + err.redirectTo = '/signin'; + return process.nextTick(() => cb(err)); } let query; diff --git a/server/middlewares/error-handlers.js b/server/middlewares/error-handlers.js index ddabe06a38..c37cd46908 100644 --- a/server/middlewares/error-handlers.js +++ b/server/middlewares/error-handlers.js @@ -25,11 +25,11 @@ export default function prodErrorHandler() { var message = 'Oops! Something went wrong. Please try again later'; if (type === 'html') { if (typeof req.flash === 'function') { - req.flash('errors', { - msg: message + req.flash(err.messageType || 'errors', { + msg: err.userMessage || message }); } - return res.redirect('/map'); + return res.redirect(err.redirectTo || '/map'); // json } else if (type === 'json') { res.setHeader('Content-Type', 'application/json');