/** * Creates an instance of `Strategy`. * * @constructor * @api public */ function Strategy() { } /** * Authenticate request. * * This function must be overridden by subclasses. In abstract form, it always * throws an exception. * * @param {Object} req The request to authenticate. * @param {Object} [options] Strategy-specific options. * @api public */ Strategy.prototype.authenticate = function(req, options) { throw new Error('Strategy#authenticate must be overridden by subclass'); }; /** * Expose `Strategy`. */ module.exports = Strategy;