jose
Version:
JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes
20 lines (19 loc) • 771 B
JavaScript
import { parseJoseHeader } from "../lib/validate.js";
function decodeProtectedHeader(token) {
let encodedProtectedHeader;
if (typeof token == "string") {
const parts = token.split(".");
(parts.length === 3 || parts.length === 5) && ([encodedProtectedHeader] = parts);
} else if (typeof token == "object" && token)
if ("protected" in token)
encodedProtectedHeader = token.protected;
else
throw new TypeError("Token does not contain a Protected Header");
const invalid = "Invalid Token or Protected Header formatting";
if (typeof encodedProtectedHeader != "string" || !encodedProtectedHeader)
throw new TypeError(invalid);
return parseJoseHeader(encodedProtectedHeader, TypeError, invalid);
}
export {
decodeProtectedHeader
};