Auth autonome pur HTTP via /gw/refresh (sans navigateur)
Le refresh du token passe désormais par POST /gw/refresh (l'endpoint que la SPA appelle) au lieu d'un navigateur headless : pur httpx, refresh_token rotaté persisté dans token.json, fenêtre 60j remise à zéro à chaque refresh. Lock single-flight pour la rotation. get_token()/auth_status() tentent /gw/refresh avant le filet Playwright. Homelab allumé = authentifié indéfiniment, sans re-sync.
This commit is contained in:
@@ -16,9 +16,10 @@ détails batch `recipes/recipes?ids=…`), filtrage coco (4/85 détectées, faux
|
||||
internes neutralisés), proposition classée, et **écriture réelle réussie** (`PUT /v1/carts/{week}`,
|
||||
HTTP 200) — sélection par index de course, ids de compte dérivés dynamiquement.
|
||||
|
||||
✅ **Auth headless durable** : le token (30 min) est rafraîchi par un navigateur headless chargé
|
||||
avec la session (`storage_state.json`, refresh ~60 j) — contourne la protection anti-bot des
|
||||
endpoints OAuth. Aucune intervention pendant ~60 j ; la session « roule » à chaque refresh.
|
||||
✅ **Auth autonome (pur HTTP)** : le token (30 min) est rafraîchi par un simple `POST /gw/refresh`
|
||||
(le endpoint que la SPA appelle), **sans navigateur**. Le refresh_token roule par fenêtres de 60 j,
|
||||
remises à zéro à chaque refresh → un homelab allumé reste authentifié **indéfiniment**, sans
|
||||
intervention ni re-sync. Le navigateur headless ne sert plus que de filet de secours.
|
||||
|
||||
> ⚠️ La connexion **directe** automatisée (Playwright/Chromium qui remplit le formulaire) est
|
||||
> bloquée par l'anti-bot HelloFresh. La session se crée donc via **attache CDP à ton vrai Chrome**
|
||||
@@ -28,7 +29,7 @@ endpoints OAuth. Aucune intervention pendant ~60 j ; la session « roule » à c
|
||||
|
||||
```
|
||||
Hermes ──HTTP──▶ server.py (FastMCP, :9200/mcp)
|
||||
├─ hellofresh/auth.py session storage_state + refresh token headless
|
||||
├─ hellofresh/auth.py session storage_state + refresh HTTP /gw/refresh
|
||||
├─ hellofresh/api.py httpx : menu, détails, deliveries, PUT cart
|
||||
├─ hellofresh/filter.py exclusion (coco !) + scoring préférences
|
||||
└─ config/ excludes.json · prefs.json · endpoints.json
|
||||
|
||||
Reference in New Issue
Block a user