24 lines
516 B
JavaScript
24 lines
516 B
JavaScript
|
module.exports = withAuthorizationPrefix;
|
||
|
|
||
|
const atob = require("atob-lite");
|
||
|
|
||
|
const REGEX_IS_BASIC_AUTH = /^[\w-]+:/;
|
||
|
|
||
|
function withAuthorizationPrefix(authorization) {
|
||
|
if (/^(basic|bearer|token) /i.test(authorization)) {
|
||
|
return authorization;
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
if (REGEX_IS_BASIC_AUTH.test(atob(authorization))) {
|
||
|
return `basic ${authorization}`;
|
||
|
}
|
||
|
} catch (error) {}
|
||
|
|
||
|
if (authorization.split(/\./).length === 3) {
|
||
|
return `bearer ${authorization}`;
|
||
|
}
|
||
|
|
||
|
return `token ${authorization}`;
|
||
|
}
|