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

prototype overwrite doesn't seem have any effect
This commit is contained in:
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 "dev": true
}, },
"passport": { "passport": {
"version": "0.2.2", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/passport/-/passport-0.2.2.tgz", "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
"integrity": "sha1-nDjxe+uSnz2Br3uIOOhDDbhwPys=", "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
"requires": { "requires": {
"passport-strategy": "1.0.0", "passport-strategy": "1.0.0",
"pause": "0.0.1" "pause": "0.0.1"

View File

@ -95,7 +95,7 @@
"normalizr": "2.2.1", "normalizr": "2.2.1",
"object.assign": "^4.0.3", "object.assign": "^4.0.3",
"opbeat": "^4.14.0", "opbeat": "^4.14.0",
"passport": "^0.2.1", "passport": "^0.4.0",
"passport-facebook": "^2.0.0", "passport-facebook": "^2.0.0",
"passport-github": "^1.0.0", "passport-github": "^1.0.0",
"passport-google-oauth2": "~0.1.6", "passport-google-oauth2": "~0.1.6",

View File

@ -56,7 +56,8 @@
"./middlewares/jade-helpers": {}, "./middlewares/jade-helpers": {},
"./middlewares/migrate-completed-challenges": {}, "./middlewares/migrate-completed-challenges": {},
"./middlewares/add-lang": {}, "./middlewares/add-lang": {},
"./middlewares/flash-cheaters": {} "./middlewares/flash-cheaters": {},
"./middlewares/passport-login": {}
}, },
"files": {}, "files": {},
"final:after": { "final:after": {

View File

@ -64,6 +64,10 @@ export default function prodErrorHandler() {
const message = handled.message || const message = handled.message ||
'Oops! Something went wrong. Please try again later'; 'Oops! Something went wrong. Please try again later';
if (isDev) {
console.error(err);
}
if (type === 'html') { if (type === 'html') {
if (isDev) { if (isDev) {
return res.render( return res.render(

View File

@ -8,7 +8,7 @@ import {
const log = debug('fcc:middlewares:error-reporter'); const log = debug('fcc:middlewares:error-reporter');
export default function keymetrics() { export default function errorHandler() {
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
return (err, req, res, next) => { return (err, req, res, next) => {
if (isHandledError(err)) { if (isHandledError(err)) {

View File

@ -1,5 +1,4 @@
import _ from 'lodash'; import _ from 'lodash';
import http from 'http';
import { Observable } from 'rx'; import { Observable } from 'rx';
import { login } from 'passport/lib/http/request'; 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 // if called without callback it returns an observable
// login(user, options?, cb?) => Void|Observable // login(user, options?, cb?) => Void|Observable
function login$(...args) { function login$(...args) {
console.log('args');
if (_.isFunction(_.last(args))) { if (_.isFunction(_.last(args))) {
return login.apply(this, args); return login.apply(this, args);
} }
return Observable.fromNodeCallback(login).apply(this, args); return Observable.fromNodeCallback(login).apply(this, args);
} }
export default function passportLogin() {
module.exports = function extendRequest() { return (req, res, next) => {
// see: jaredhanson/passport/blob/master/lib/framework/connect.js#L33 req.login = req.logIn = login$;
http.IncomingMessage.prototype.login = login$; next();
http.IncomingMessage.prototype.logIn = login$; };
}; }