Перейти до вмісту
AstroWay/api v2.325.2 · docs
усі системи в нормі

Ключ сайту для WordPress

Плагін AstroWay для WordPress отримує ключ сам, без реєстрації: сайт показує доказ на своєму REST-маршруті, ми його перевіряємо й видаємо ключ, прив’язаний до цього сайту.

Як проходить перевірка

Section titled “Як проходить перевірка”
  1. Плагін генерує proof_id (UUID v4) і proof (32 випадкові байти в base64url, 43 символи) і тримає їх 10 хвилин.
  2. Сайт віддає GET <home_url>/wp-json/astroway/v1/verify?nonce=<proof_id> з Content-Type: application/json і тілом {"proof":"<proof>"}.
  3. Плагін надсилає POST /v1/site-keys:
{ "site_url": "https://example.com", "proof_id": "3f1c2a9e-8b7d-4c1e-9f3a-2b6d5e4c1a07", "proof": "<43 characters>" }

site_url це рівно home_url(), без ? і #. Для простих постійних посилань передайте verify_url з ?rest_route=/astroway/v1/verify: він приймається лише на тому ж сайті й лише як цей маршрут.

  • для сервера сайту: запит із браузера (з заголовком Origin) отримує 403, а кожен виклик має називати сайт у X-AstroWay-Site-URL. Прив’язка тримається на цьому заголовку, тож ключ зберігайте як секрет, а якщо він витік, отримайте новий: попередній буде відкликано;
  • набір безкоштовних читань, 300 викликів на годину на сайт, без кредитів; гороскопи з датою приймаються лише біля сьогоднішньої дати;
  • один ключ на встановлення (хост і домашній шлях), до 5 встановлень на хост зі спільною годиною.

Помилки: 400 INVALID_SITE_URL, 422 SITE_VERIFICATION_FAILED з details.reason, 429 SITE_KEY_RATE_LIMIT з retry_after.

Коли власник сайту хоче працювати на своєму плані, плагін переводить сайт на ключ акаунта в один клік.

  1. Плагін відкриває в браузері адміністратора https://api.astroway.info/dashboard/connect?site=<home_url>&return=<admin_url>&state=<16-128 символів>&source=wp_plugin. return має бути на тому ж хості, що й site, і на https.
  2. Адміністратор входить або реєструється й обирає ключ для сайту або створює новий. Ключ, уже прив’язаний до іншого домену, переноситься лише після окремого підтвердження.
  3. Браузер повертається на return з code і тим самим state. Скасування повертає error=access_denied.
  4. Сервер сайту обмінює код, надіславши свій ключ сайту в X-Api-Key:
POST /v1/site-keys/connect/exchange
{ "code": "<43 characters>", "site_url": "https://example.com" }

Відповідь: { "key": "aw_live_…", "plan": "free", "domain": "example.com", "account": "j***@example.com" }. Код живе 5 хвилин. Повторний обмін того самого коду тим самим ключем сайту протягом 10 хвилин повертає ту саму відповідь. Ключ сайту перестає діяти через 24 години після обміну.

Помилки: 400 INVALID_CODE, 410 CODE_EXPIRED, 403 SITE_MISMATCH.