1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-04 00:18:40 +01:00
unleash.unleash/src/lib/middleware/bearer-token-middleware.ts

28 lines
863 B
TypeScript
Raw Normal View History

import type { Request, Response, NextFunction } from 'express';
import type { IUnleashConfig } from '../types';
export const bearerTokenMiddleware = ({
getLogger,
flagResolver,
}: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>) => {
const logger = getLogger('/middleware/bearer-token-middleware.ts');
logger.debug('Enabling bearer token middleware');
return (req: Request, _: Response, next: NextFunction) => {
if (
req.path.startsWith('/api/signal-endpoint/') ||
flagResolver.isEnabled('bearerTokenMiddleware')
) {
const authHeader = req.headers.authorization;
if (authHeader) {
req.headers.authorization = authHeader.replace(
/^Bearer\s+/i,
'',
);
}
}
next();
};
};