diff --git a/index.js b/index.js index 99cd158..5822b30 100644 --- a/index.js +++ b/index.js @@ -40,22 +40,24 @@ function ExpressOAuthServer(options) { */ ExpressOAuthServer.prototype.authenticate = function(options) { - var that = this; - - return function(req, res, next) { - var request = new Request(req); - var response = new Response(res); + const self = this; + options = options || {}; - return Promise.bind(that) + return function(request, response, next) { + return Promise.bind(self) .then(function() { - return this.server.authenticate(request, response, options); + return this.server.authenticate(new Request(request), new Response(response), options); }) .tap(function(token) { - res.locals.oauth = { token: token }; - next(); + request.oauth = { token: token }; + return next(); }) - .catch(function(e) { - return handleError.call(this, e, req, res, null, next); + .catch(function(error) { + if (typeof options.catchErrorAndContinue !== 'undefined' && options.catchErrorAndContinue) { + return next(); + } else { + return handleError.call(this, error, request, response, null, next); + } }); }; };