Projet

Général

Profil

Development #70987

pwa: utiliser correctement pywebpush

Ajouté par Benjamin Dauvergne il y a plus d'un an. Mis à jour il y a environ 2 mois.

Statut:
Solution déployée
Priorité:
Bas
Assigné à:
Version cible:
-
Début:
04 novembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non
Tags:
pwa

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

Lié à Combo - Development #79052: Fonctionnement des notifications sur IOSSolution déployée26 juin 2023

Actions
Lié à Combo - Development #79051: Fonctionnement des notifications sur AndroidSolution déployée26 juin 2023

Actions

Révisions associées

Révision 9f25287a (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 mois

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.

Révision a5f8140d (diff)
Ajouté par Benjamin Dauvergne il y a environ 2 mois

pwa: add Urgency: low header (#70987)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Tags mis à pwa
#2

Mis à jour par Benjamin Dauvergne il y a 5 mois

#3

Mis à jour par Benjamin Dauvergne il y a 5 mois

#4

Mis à jour par Benjamin Dauvergne il y a 5 mois

  • Assigné à mis à Benjamin Dauvergne
#5

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.

#6

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 :

#10

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 :

#11

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 :

#12

Mis à jour par Transition automatique il y a environ 2 mois

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF