@mark01/express-utils
Version:
npm package that contains utilities for express.js
20 lines (19 loc) • 790 B
JavaScript
export const createBasicAuth = (username, password) => {
const credentials = `${username}:${password}`;
const encoded = Buffer.from(credentials).toString('base64');
return `Basic ${encoded}`;
};
export const parseBasicAuth = (auth) => {
const [, credentials] = auth.split('Basic ');
if (!credentials) {
throw new TypeError('parseBasicAuth: Invalid Basic authentication scheme!');
}
const decoded = Buffer.from(credentials, 'base64').toString('utf-8');
const separator = decoded.indexOf(':');
if (separator === -1) {
throw new TypeError('parseBasicAuth: Invalid Basic authentication scheme!');
}
const username = decoded.slice(0, separator);
const password = decoded.slice(separator + 1);
return { username, password };
};