fix(passport/login): Use middleware instead of bootscript

prototype overwrite doesn't seem have any effect
pull/16376/merge
Berkeley Martinez 2017-12-27 17:34:56 -08:00 committed by mrugesh mohapatra
parent 894a309723
commit 13b7eac16f
6 changed files with 18 additions and 13 deletions

6
package-lock.json generated
View File

@ -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"

View File

@ -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",

View File

@ -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": {

View File

@ -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(

View File

@ -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)) {

View File

@ -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();
};
}