Separate two cases for validation of aud claim.

This commit is contained in:
Jonathan Bernard 2022-02-07 13:40:35 -06:00
parent 4e0d06bb67
commit 546d1a9cbe

View File

@ -136,10 +136,13 @@ proc validateJWT*(ctx: ApiAuthContext, jwt: JWT) =
if jwt.header.alg.isNone: failAuth "Missing 'alg' header property."
if jwt.claims.aud.isNone or
not ctx.validAudiences.contains(jwt.claims.aud.get):
if jwt.claims.aud.isNone: failAuth "Missing 'aud' claim."
if not ctx.validAudiences.contains(jwt.claims.aud.get):
log.debug(
"Valid audiences: $#\ttoken audience: $#" %
[$ctx.validAudiences, jwt.claims.aud.get])
failAuth "JWT is not for us (invalid audience)."
failAuth "Issuer is trusted, but the token is not for the expected audience."
let signingAlgorithm = jwt.header.alg.get