@unito/integration-sdk
Version:
Integration SDK
24 lines (23 loc) • 870 B
JavaScript
import { BadRequestError } from '../httpErrors.js';
const CREDENTIALS_HEADER = 'X-Unito-Credentials';
function extractCredentials(req, res, next) {
const credentialsHeader = req.header(CREDENTIALS_HEADER);
if (credentialsHeader) {
let credentials;
try {
credentials = JSON.parse(Buffer.from(credentialsHeader, 'base64').toString('utf8'));
}
catch {
throw new BadRequestError(`Malformed HTTP header ${CREDENTIALS_HEADER}`);
}
res.locals.credentials = credentials;
if (credentials.unitoCredentialId) {
res.locals.logger?.decorate({ credentialId: credentials.unitoCredentialId });
}
if (credentials.unitoUserId) {
res.locals.logger?.decorate({ userId: credentials.unitoUserId });
}
}
next();
}
export default extractCredentials;