28 lines
929 B
JavaScript
28 lines
929 B
JavaScript
module.exports = function(server, options) {
|
|
options = options || {};
|
|
|
|
if (!server) { throw new TypeError('oauth2orize.authorizationErrorHandler middleware requires a server argument'); }
|
|
|
|
return function authorizationErrorHandler(err, req, res, next) {
|
|
if (!req.oauth2) { return next(err); }
|
|
|
|
if (req.oauth2.transactionID && !req.oauth2._endProxied) {
|
|
// proxy end() to delete the transaction
|
|
var end = res.end;
|
|
res.end = function(chunk, encoding) {
|
|
if (server._txnStore.legacy == true) {
|
|
server._txnStore.remove(options, req, req.oauth2.transactionID, function noop(){});
|
|
} else {
|
|
server._txnStore.remove(req, req.oauth2.transactionID, function noop(){});
|
|
}
|
|
|
|
res.end = end;
|
|
res.end(chunk, encoding);
|
|
};
|
|
}
|
|
|
|
server._respondError(err, req.oauth2, res, function(err) {
|
|
return next(err);
|
|
});
|
|
}
|
|
}
|