@lokalise/fastify-extras
Version:
Opinionated set of fastify plugins, commonly used in Lokalise
21 lines • 1.01 kB
JavaScript
import { AuthFailedError } from '@lokalise/node-core';
const BEARER_PREFIX = 'Bearer ';
const BEARER_PREFIX_LENGTH = BEARER_PREFIX.length;
export function createStaticTokenAuthPreHandler(configuredSecretToken, loggerProvider, authHeaderName = 'authorization') {
return function preHandlerStaticTokenAuth(req, _, done) {
const logger = loggerProvider(req);
const authHeaderValue = req.headers[authHeaderName];
const authHeader = !!authHeaderValue && Array.isArray(authHeaderValue) ? authHeaderValue[0] : authHeaderValue;
if (!authHeader?.startsWith(BEARER_PREFIX)) {
logger.error('Token not present');
return done(new AuthFailedError());
}
const token = authHeader.substring(BEARER_PREFIX_LENGTH, authHeader.length);
if (token !== configuredSecretToken) {
logger.error('Invalid token');
return done(new AuthFailedError());
}
done();
};
}
//# sourceMappingURL=authPreHandlers.js.map