Project

General

Profile

Development #70987

pwa: utiliser correctement pywebpush

Added by Benjamin Dauvergne over 1 year ago. Updated 27 days ago.

Status:
Solution validée
Priority:
Bas
Target version:
-
Start date:
04 November 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No
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.


Related issues

Related to Combo - Development #79052: Fonctionnement des notifications sur IOSEn cours26 June 2023

Actions
Related to Combo - Development #79051: Fonctionnement des notifications sur AndroidNouveau26 June 2023

Actions

History

#1

Updated by Benjamin Dauvergne about 1 year ago

  • Tags set to pwa
#2

Updated by Benjamin Dauvergne 3 months ago

#3

Updated by Benjamin Dauvergne 3 months ago

#4

Updated by Benjamin Dauvergne 3 months ago

  • Assignee set to Benjamin Dauvergne
#5

Updated by Benjamin Dauvergne 3 months ago

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

Updated by Robot Gitea 3 months ago

  • Status changed from Nouveau to Solution proposée

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#10

Updated by Robot Gitea 27 days ago

  • Status changed from Solution proposée to Solution validée

Corentin Sechet (csechet) a approuvé une pull request sur Gitea concernant cette demande :

Also available in: Atom PDF