Development #70987
pwa: utiliser correctement pywebpush
0%
Description
Deux points:
Par facilité on appelle pywebpush.webpush qui crée le jeton VAPID (mal avec un vieux Draft) et génère l'appel au web-service, en vrai on devrait gérer nous même la création du jeton et l'appel à l'objet WebPush, comme dans la doc de celui-ci :
# Optional # headers = py_vapid.sign({"aud": "https://push.server.com/", "sub": "mailto:your_admin@your.site.com"}) headers = cache.get('vapid-headers') if headers is None: vp = py_vapid.Vapid02.from_string(private_key=private_key) # Vapid02 == utiliser le auth scheme Vapid de RFC8292 url = urlparse(subscription_info.get('endpoint')) aud = "{}://{}".format(url.scheme, url.netloc) headers = vp.sign({'aud': aud, 'sub': 'mailto:%s' % settings.DEFAULT_FROM_EMAIL, 'exp': int(datetime.now().timestamp() + 3600 * 3)}) cache.set('vapid-headers', headers, 3600 * 2) data = "Mary had a little lamb, with a nice mint jelly" WebPusher(subscription_info).send(data, headers)
Notamment parce que la doc indique qu'on peut mettre en cache le jeton JWT (pour au max 24h) et que Apple indique que son nouveau serveur webpush imposera d'utiliser au moins le même jeton pendant 1h (pour diminuer leur besoin d'en valider les signatures) et il est bien possible que le serveur windows, qui fait du throttling sans le dire, le fasse aussi.
Demandes liées
Révisions associées
pwa: add Urgency: low header (#70987)
Historique
Mis à jour par Benjamin Dauvergne il y a 5 mois
- Lié à Development #79052: Fonctionnement des notifications sur IOS ajouté
Mis à jour par Benjamin Dauvergne il y a 5 mois
- Lié à Development #79051: Fonctionnement des notifications sur Android ajouté
Mis à jour par Benjamin Dauvergne il y a 5 mois
Il faut aussi que je mette à jour py-vapid dans nos dépôts. PS: et pywebpush et http-ece, depuis que ce ne sont plus des drafts mais une RFC les choses se sont stabilisées.
Mis à jour par Robot Gitea il y a 4 mois
- Statut changé de Nouveau à Solution proposée
Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/combo/pulls/200
- Titre : ajouter du cache sur les entêtes d'authentification VAPID (#70987)
- Modifications : https://git.entrouvert.org/entrouvert/combo/pulls/200/files
Mis à jour par Robot Gitea il y a 3 mois
- Statut changé de Solution proposée à Solution validée
Corentin Sechet (csechet) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a environ 2 mois
- Statut changé de Solution validée à Résolu (à déployer)
Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/combo/pulls/200
- Titre : ajouter du cache sur les entêtes d'authentification VAPID (#70987)
- Modifications : https://git.entrouvert.org/entrouvert/combo/pulls/200/files
Mis à jour par Transition automatique il y a environ 2 mois
- Statut changé de Résolu (à déployer) à Solution déployée
pwa: conserve VAPID headers in cache for 12 hours (#70987)
The JSON webtoken is valid for 24 hours but only kept for 23 hours, to
prevent any use after expiration.
Also factorize webpush implementation from signal handling and remove
unused legacy settings support.