export async function verifyJwtToken()

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);
    }
}