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) • 739 B
JavaScript
import { createCompactSignature } from "../lib/jws_sign.js";
import { JWTInvalid } from "../util/errors.js";
import { JWTClaimsBuilder, jwtClaimsSetBytes } from "../lib/jwt_claims_set.js";
import { assertNotSet } from "../lib/validate.js";
const SignJWT_base = JWTClaimsBuilder;
class SignJWT extends SignJWT_base {
#protectedHeader;
setProtectedHeader(protectedHeader) {
return assertNotSet(this.#protectedHeader, "setProtectedHeader"), this.#protectedHeader = protectedHeader, this;
}
async sign(key, options) {
return createCompactSignature(jwtClaimsSetBytes(this), this.#protectedHeader, options?.crit, key, () => {
throw new JWTInvalid("JWTs MUST NOT use unencoded payload");
});
}
}
export {
SignJWT
};