UNPKG

@lokalise/fastify-extras

Version:

Opinionated set of fastify plugins, commonly used in Lokalise

21 lines 1.01 kB
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