Перейти к содержимому
ecdsa.com
PyJWT (Python)Библиотеки JWT

Сообщение об ошибке

Invalid audience

Также выводится как

  • jwt.exceptions.InvalidAudienceError: Invalid audience

Сравните с ошибкой «Audience doesn't match»: она означает, что вы передали `audience`, но ни одно значение не совпало.

PyJWT (Python) — jwt.exceptions.InvalidAudienceError

Что это означает

В токене есть утверждение `aud`, но `jwt.decode()` вызван без аргумента `audience`. PyJWT не игнорирует аудиторию, которую не может проверить: токен, в котором назван получатель, отклоняется, если вы не укажете, какой именно вы получатель. То же сообщение появляется, если у `aud` недопустимый тип (не строка и не список строк).

Почему это происходит

Как исправить

  1. 1.

    Передайте PyJWT свою аудиторию

    Передайте идентификатор своего API (или список допустимых идентификаторов). Не отключайте `verify_aud` — именно эта проверка не даёт принять токены, выпущенные для других сервисов.

    python
    claims = jwt.decode(
        token,
        signing_key,
        algorithms=["ES256"],
        audience="https://api.example.com",  # the identifier your API is registered with
    )
  2. 2.

    Используйте декодирование без проверки только для просмотра

    `verify_signature: False` отключает все проверки, включая проверку аудитории. Это полезно, чтобы прочитать `aud` при отладке, но никогда не годится для авторизации запроса.

    python
    # Reading claims without trusting them (debugging, routing) - never for authorization.
    header = jwt.get_unverified_header(token)
    claims = jwt.decode(token, options={"verify_signature": False})

Связанные ошибки

Открыть всю базу ошибок подписей