From 13b7eac16fb41a0b3959497149ab5bd62ca76541 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Wed, 27 Dec 2017 17:34:56 -0800 Subject: [PATCH] fix(passport/login): Use middleware instead of bootscript prototype overwrite doesn't seem have any effect --- package-lock.json | 6 +++--- package.json | 2 +- server/middleware.json | 3 ++- server/middlewares/error-handlers.js | 4 ++++ server/middlewares/error-reporter.js | 2 +- .../passport-login.js} | 14 +++++++------- 6 files changed, 18 insertions(+), 13 deletions(-) rename server/{boot/extend-request.js => middlewares/passport-login.js} (64%) diff --git a/package-lock.json b/package-lock.json index 3cb400b765..4634bb1a08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12726,9 +12726,9 @@ "dev": true }, "passport": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/passport/-/passport-0.2.2.tgz", - "integrity": "sha1-nDjxe+uSnz2Br3uIOOhDDbhwPys=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz", + "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=", "requires": { "passport-strategy": "1.0.0", "pause": "0.0.1" diff --git a/package.json b/package.json index 4c91aca62e..bb40813f45 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "normalizr": "2.2.1", "object.assign": "^4.0.3", "opbeat": "^4.14.0", - "passport": "^0.2.1", + "passport": "^0.4.0", "passport-facebook": "^2.0.0", "passport-github": "^1.0.0", "passport-google-oauth2": "~0.1.6", diff --git a/server/middleware.json b/server/middleware.json index dfcabd66c6..71a1042a57 100644 --- a/server/middleware.json +++ b/server/middleware.json @@ -56,7 +56,8 @@ "./middlewares/jade-helpers": {}, "./middlewares/migrate-completed-challenges": {}, "./middlewares/add-lang": {}, - "./middlewares/flash-cheaters": {} + "./middlewares/flash-cheaters": {}, + "./middlewares/passport-login": {} }, "files": {}, "final:after": { diff --git a/server/middlewares/error-handlers.js b/server/middlewares/error-handlers.js index b2c0029341..821a36d4c0 100644 --- a/server/middlewares/error-handlers.js +++ b/server/middlewares/error-handlers.js @@ -64,6 +64,10 @@ export default function prodErrorHandler() { const message = handled.message || 'Oops! Something went wrong. Please try again later'; + if (isDev) { + console.error(err); + } + if (type === 'html') { if (isDev) { return res.render( diff --git a/server/middlewares/error-reporter.js b/server/middlewares/error-reporter.js index 61f0432048..d9651460bb 100644 --- a/server/middlewares/error-reporter.js +++ b/server/middlewares/error-reporter.js @@ -8,7 +8,7 @@ import { const log = debug('fcc:middlewares:error-reporter'); -export default function keymetrics() { +export default function errorHandler() { if (process.env.NODE_ENV !== 'production') { return (err, req, res, next) => { if (isHandledError(err)) { diff --git a/server/boot/extend-request.js b/server/middlewares/passport-login.js similarity index 64% rename from server/boot/extend-request.js rename to server/middlewares/passport-login.js index abf463410b..ff9c72e23f 100644 --- a/server/boot/extend-request.js +++ b/server/middlewares/passport-login.js @@ -1,5 +1,4 @@ import _ from 'lodash'; -import http from 'http'; import { Observable } from 'rx'; import { login } from 'passport/lib/http/request'; @@ -8,14 +7,15 @@ import { login } from 'passport/lib/http/request'; // if called without callback it returns an observable // login(user, options?, cb?) => Void|Observable function login$(...args) { + console.log('args'); if (_.isFunction(_.last(args))) { return login.apply(this, args); } return Observable.fromNodeCallback(login).apply(this, args); } - -module.exports = function extendRequest() { - // see: jaredhanson/passport/blob/master/lib/framework/connect.js#L33 - http.IncomingMessage.prototype.login = login$; - http.IncomingMessage.prototype.logIn = login$; -}; +export default function passportLogin() { + return (req, res, next) => { + req.login = req.logIn = login$; + next(); + }; +}