2017-12-27 18:11:17 +00:00
|
|
|
import _ from 'lodash';
|
|
|
|
import { Observable } from 'rx';
|
|
|
|
import { login } from 'passport/lib/http/request';
|
|
|
|
|
|
|
|
// make login polymorphic
|
|
|
|
// if supplied callback it works as normal
|
|
|
|
// if called without callback it returns an observable
|
|
|
|
// login(user, options?, cb?) => Void|Observable
|
|
|
|
function login$(...args) {
|
|
|
|
if (_.isFunction(_.last(args))) {
|
|
|
|
return login.apply(this, args);
|
|
|
|
}
|
|
|
|
return Observable.fromNodeCallback(login).apply(this, args);
|
|
|
|
}
|
2018-10-23 23:24:48 +00:00
|
|
|
|
2017-12-28 01:34:56 +00:00
|
|
|
export default function passportLogin() {
|
|
|
|
return (req, res, next) => {
|
|
|
|
req.login = req.logIn = login$;
|
|
|
|
next();
|
|
|
|
};
|
|
|
|
}
|