summaryrefslogtreecommitdiff
path: root/jwt/api_jwt.py
diff options
context:
space:
mode:
Diffstat (limited to 'jwt/api_jwt.py')
-rw-r--r--jwt/api_jwt.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/jwt/api_jwt.py b/jwt/api_jwt.py
index 70a5e53..55a8f29 100644
--- a/jwt/api_jwt.py
+++ b/jwt/api_jwt.py
@@ -177,19 +177,18 @@ class PyJWT:
raise ExpiredSignatureError("Signature has expired")
def _validate_aud(self, payload, audience):
- if audience is None and "aud" not in payload:
- return
+ if audience is None:
+ if "aud" not in payload or not payload["aud"]:
+ return
+ # Application did not specify an audience, but
+ # the token has the 'aud' claim
+ raise InvalidAudienceError("Invalid audience")
- if audience is not None and "aud" not in payload:
+ if "aud" not in payload or not payload["aud"]:
# Application specified an audience, but it could not be
# verified since the token does not contain a claim.
raise MissingRequiredClaimError("aud")
- if audience is None and "aud" in payload:
- # Application did not specify an audience, but
- # the token has the 'aud' claim
- raise InvalidAudienceError("Invalid audience")
-
audience_claims = payload["aud"]
if isinstance(audience_claims, str):