webservices/node_modules/oauth2orize/lib/middleware/transactionLoader.js

47 lines
1.5 KiB
JavaScript

/**
* Module dependencies.
*/
var AuthorizationError = require('../errors/authorizationerror')
, BadRequestError = require('../errors/badrequesterror')
, ForbiddenError = require('../errors/forbiddenerror');
/**
* Loads an OAuth 2.0 authorization transaction from the session.
*
* This middleware is used to load a pending OAuth 2.0 transaction that is
* serialized into the session. In most circumstances, this is transparently
* done prior to processing a user's decision with `decision` middleware, and an
* implementation shouldn't need to mount this middleware explicitly.
*
* Options:
*
* transactionField name of field that contains the transaction ID (default: 'transaction_id')
* sessionKey key under which transactions are stored in the session (default: 'authorize')
*
* @param {Server} server
* @param {Object} options
* @return {Function}
* @api protected
*/
module.exports = function(server, options) {
options = options || {};
if (!server) { throw new TypeError('oauth2orize.transactionLoader middleware requires a server argument'); }
return function transactionLoader(req, res, next) {
if (req.oauth2) { return next(); }
function loaded(err, txn) {
if (err) { return next(err); }
req.oauth2 = txn;
next();
}
if (server._txnStore.legacy == true) {
server._txnStore.load(server, options, req, loaded);
} else {
server._txnStore.load(req, loaded);
}
};
};