@contentgrid/fetch-hook-authentication
Version:
40 lines (35 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var request = require('@contentgrid/fetch-hooks/request');
var valueProvider = require('@contentgrid/fetch-hooks/value-provider');
var tokenSupplier_composite = require('./token-supplier/composite.js');
var tokenSupplier_contentgridTokenExchange = require('./token-supplier/contentgridTokenExchange.js');
require('@contentgrid/fetch-hooks');
require('whatwg-mimetype');
function createBearerAuthenticationHook(opts) {
const tokenSupplierResolver = valueProvider.ValueProviderResolver.fromValueProvider(opts.tokenSupplier);
return request.setHeader("Authorization", async _ref => {
let {
request,
entrypoint
} = _ref;
const tokenSupplier = await tokenSupplierResolver.resolve();
const authenticationToken = await tokenSupplier(request.url, {
signal: request.signal,
fetch: entrypoint
});
if (authenticationToken) {
return "Bearer " + authenticationToken.token;
} else {
return null;
}
});
}
exports.CompositeTokenSupplierBuilder = tokenSupplier_composite.CompositeTokenSupplierBuilder;
exports.createCompositeTokenSupplier = tokenSupplier_composite.default;
exports.OAuth2AuthenticationError = tokenSupplier_contentgridTokenExchange.OAuth2AuthenticationError;
exports.TokenExchangeError = tokenSupplier_contentgridTokenExchange.TokenExchangeError;
exports.TokenExchangeProtocolViolationError = tokenSupplier_contentgridTokenExchange.TokenExchangeProtocolViolationError;
exports.createContentgridTokenExchangeTokenSupplier = tokenSupplier_contentgridTokenExchange.default;
exports.default = createBearerAuthenticationHook;
//# sourceMappingURL=index.js.map