in src/smartAuthorizationHelper.ts [193:213]
export async function verifyJwtToken(
token: string,
expectedAudValue: string | RegExp,
expectedIssValue: string,
client: JwksClient,
) {
const decodedAccessToken = decodeJwtToken(token, expectedAudValue, expectedIssValue);
const { kid } = decodedAccessToken.header;
if (!kid) {
logger.warn('JWT verification failed. JWT "kid" attribute is required in the header');
throw new UnauthorizedError(GENERIC_ERR_MESSAGE);
}
try {
const key = await client.getSigningKeyAsync(kid);
return verify(token, key.getPublicKey(), { audience: expectedAudValue, issuer: expectedIssValue });
} catch (e) {
logger.warn((e as any).message);
throw new UnauthorizedError(GENERIC_ERR_MESSAGE);
}
}