INNER CODE UNIT · TypeScript
verifiedSignatureAgent
cloudflare/web-bot-auth · packages/web-bot-auth/src/index.ts:215
function verifiedSignatureAgent(
request: Request | RequestDescriptor,
components: readonly ComponentDescriptor[]
): SignatureAgentEntry | undefined {
const header = requestHeader(request, SIGNATURE_AGENT_HEADER);
if (header === undefined) return undefined;
const parsed = parseSignatureAgentHeader(header);
if (parsed.kind === "legacy") {
const covered = components.some(
({ name, parameters }) =>
name === SIGNATURE_AGENT_HEADER && Object.keys(parameters).length === 0
);
if (!covered) {
return policyError(`signature must cover ${SIGNATURE_AGENT_HEADER}`);
}
const entry = parsed.entries[0];
if (entry === undefined) return policyError("Signature-Agent is empty");
return Object.freeze({ ...entry });