cf-auth0
Version:
🔐 Auth0 Client on Cloudflare Pages
16 lines (15 loc) • 665 B
JavaScript
import { jwa } from '../jwa';
import { toString } from './tostring';
const securedInputFromJWS = (jwsSig) => jwsSig.split('.', 2).join('.');
const signatureFromJWS = (jwsSig) => jwsSig.split('.')[2];
export const jwsVerify = async (jwsSig, algorithm, secretOrKey) => {
if (!algorithm) {
throw new Error('[MISSING_ALGORITHM]: Missing algorithm parameter for jws.verify');
}
jwsSig = toString(jwsSig);
const signature = signatureFromJWS(jwsSig);
const securedInput = securedInputFromJWS(jwsSig);
const algo = jwa(algorithm);
// @ts-expect-error TODO: fix this
return await algo.verify(securedInput, signature, secretOrKey);
};