Aller au contenu
AstroWay/api v2.325.2 · fr
tous les systèmes sont opérationnels

Clé du site pour WordPress

Le plugin AstroWay pour WordPress obtient la clé automatiquement, sans inscription : le site montre la preuve sur son endpoint REST, nous la vérifions et délivrons une clé liée à ce site.

  1. Le plugin génère proof_id (UUID v4) et proof (32 octets aléatoires en base64url, 43 caractères) et les conserve pendant 10 minutes.
  2. Le site répond à GET <home_url>/wp-json/astroway/v1/verify?nonce=<proof_id> avec Content-Type: application/json et le corps {"proof":"<proof>"}.
  3. Le plugin envoie POST /v1/site-keys :
{ "site_url": "https://example.com", "proof_id": "3f1c2a9e-8b7d-4c1e-9f3a-2b6d5e4c1a07", "proof": "<43 characters>" }

site_url correspond exactement à home_url(), sans ? ni #. Pour les permaliens simples, passe verify_url avec ?rest_route=/astroway/v1/verify : il n’est accepté que sur le même site et uniquement sous ce chemin.

  • pour le serveur du site : une requête depuis le navigateur (avec l’en‑tête Origin) reçoit un 403, et chaque appel doit indiquer le site dans X-AstroWay-Site-URL. L’association repose sur cet en‑tête, donc garde la clé comme un secret, et si elle fuit, récupère‑en une nouvelle : la précédente sera révoquée ;
  • un ensemble de lectures gratuites, 300 appels par heure par site, sans crédits ; les horoscopes avec date ne sont acceptés qu’autour de la date du jour ;
  • une clé par installation (hôte et chemin racine), jusqu’à 5 installations par hôte avec une heure partagée.

Erreurs : 400 INVALID_SITE_URL, 422 SITE_VERIFICATION_FAILED avec details.reason, 429 SITE_KEY_RATE_LIMIT avec retry_after.

Quand le propriétaire du site veut travailler sur son plan, le plugin migre le site vers la clé de compte en un clic.

  1. Le plugin ouvre dans le navigateur de l’administrateur https://api.astroway.info/dashboard/connect?site=<home_url>&return=<admin_url>&state=<16-128 символів>&source=wp_plugin. return doit être sur le même hôte que site, et en https.
  2. L’administrateur se connecte ou s’inscrit et choisit la clé pour le site ou en crée une nouvelle. Une clé déjà liée à un autre domaine ne peut être transférée qu’après une confirmation séparée.
  3. Le navigateur revient à return avec code et le même state. L’annulation renvoie error=access_denied.
  4. Le serveur du site échange le code en envoyant sa clé de site dans X-Api-Key :
POST /v1/site-keys/connect/exchange
{ "code": "<43 characters>", "site_url": "https://example.com" }

Réponse : { "key": "aw_live_…", "plan": "free", "domain": "example.com", "account": "j***@example.com" }. Le code vit 5 minutes. Un nouvel échange du même code avec la même clé de site dans les 10 minutes renvoie la même réponse. La clé du site cesse de fonctionner 24 heures après l’échange.

Erreurs : 400 INVALID_CODE, 410 CODE_EXPIRED, 403 SITE_MISMATCH.