@mercury-labs/nest-auth
Version:
Mercury framework auth library. It supports local auth, jwt with both bearer token and cookie, basic auth.
37 lines • 2.31 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.headerExtractorForApiKey = exports.cookieExtractorForApiKey = exports.headerExtractorForRefreshToken = exports.cookieExtractorForRefreshToken = exports.headerExtractorForAuthorization = exports.cookieExtractorForAuthorization = exports.headerExtractor = exports.cookieExtractor = void 0;
const definitions_1 = require("../definitions");
const http_context_helper_1 = require("./http-context.helper");
const remove_bearer_from_token_helper_1 = require("./remove-bearer-from-token.helper");
const cookieExtractor = (key = 'Authorization') => (transferTokenMethod) => (request) => {
if (transferTokenMethod === definitions_1.AuthTransferTokenMethod.BEARER_ONLY) {
return null;
}
const cookieAuthHeaders = [key, key.toLowerCase()].map((k) => (0, http_context_helper_1.getRequestCookie)(request, k));
const cookieAuthHeader = cookieAuthHeaders.find((i) => !!i && typeof i === 'string');
if (!cookieAuthHeader) {
return null;
}
return (0, remove_bearer_from_token_helper_1.removeBearerFromToken)(cookieAuthHeader) || null;
};
exports.cookieExtractor = cookieExtractor;
const headerExtractor = (key = 'authorization') => (transferTokenMethod) => (request) => {
if (transferTokenMethod === definitions_1.AuthTransferTokenMethod.COOKIE_ONLY) {
return null;
}
const authHeaders = [key, key.toLowerCase()].map((k) => (0, http_context_helper_1.getRequestHeader)(request, k));
const authHeader = authHeaders.find((i) => !!i && typeof i === 'string');
if (!authHeader) {
return null;
}
return (0, remove_bearer_from_token_helper_1.removeBearerFromToken)(authHeader);
};
exports.headerExtractor = headerExtractor;
exports.cookieExtractorForAuthorization = (0, exports.cookieExtractor)('Authorization');
exports.headerExtractorForAuthorization = (0, exports.headerExtractor)('Authorization');
exports.cookieExtractorForRefreshToken = (0, exports.cookieExtractor)('Refresh-Token');
exports.headerExtractorForRefreshToken = (0, exports.headerExtractor)('Refresh-Token');
exports.cookieExtractorForApiKey = (0, exports.cookieExtractor)('Api-Key');
exports.headerExtractorForApiKey = (0, exports.headerExtractor)('Api-Key');
//# sourceMappingURL=extractor.js.map
;