Я пытаюсь отправить уведомления Web Push из моего приложения Flask, используя библиотеки pywebpush и py_vapid для аутентификации с помощью ключей VAPID, но Я столкнулся с ошибкой, утверждающей, что поле aud отсутствует в моих утверждениях VAPID.
Вот код, который я использую для отправки уведомления:
Код: Выделить всё
from pywebpush import webpush, WebPushException
vapid_private_key_pem = "KE0RL_B2SY1AVcpHRWgTzC68or6cLC4RZaHmkM4ZsLk"
def send_push_notification(subscription_info, data):
vapid_claims = {
"sub": "mailto:vadimshiba@duck.com",
"aud": "https://chat.bitsquad.ru/"
}
try:
response = webpush(
subscription_info=subscription_info,
data=data,
vapid_private_key=vapid_private_key_pem,
vapid_claims=vapid_claims
)
print("Push sent successfully: ", response)
return True
except WebPushException as ex:
print("Web push failure: ", repr(ex))
return False
Код: Выделить всё
ValueError: Missing 'aud' from claims. 'aud' is the scheme, host and optional port for this transaction e.g. https://example.com:8080
- Двойная проверка утверждений VAPID. Я повторно проверил формат и содержимое vapid_claims, убедившись, что поля aud, sub и другие необходимые поля точно соответствуют спецификациям.< /p>
- Обновление библиотек: я убедился, что использую последние версии pywebpush и py_vapid< /code>, чтобы исключить возможность ошибок из-за устаревшего программного обеспечения.
- Журналирование: непосредственно перед отправкой уведомления, я добавил журналирование ключевых переменных, включая vapid_claims и subscribe_info, чтобы гарантировать их правильность.
- < strong>Проверка формата закрытого ключа: я повторно проверил формат моего закрытого ключа VAPID, убедившись, что он соответствует ожидаемым стандартам и правильно используется в коде.
Подробнее здесь: https://stackoverflow.com/questions/781 ... with-vapid