Saltar al contenido principal

WordPress · Verificación de dominio

El plugin neuroon-search no usa meta-tags ni registros DNS para verificar el dominio. Confía en la API Key + el header Origin: cuando pulsas Verify Domain en el admin, el plugin envía POST /api/plugin/shops/verify con el dominio actual y el backend lo compara (tras normalizeUrl) con el shop.url ya registrado en Neuroon.

Cita: handlers admin_post_neuroon_verify / admin_post_neuroon_unverify en wordpress-plugin/neuroon-search/neuroon-verification.php y endpoints listados en wordpress-plugin/CLAUDE.md.

Cómo funciona el flujo

  1. Generas la Shop API Key en el dashboard de Neuroon.

  2. La pegas en Settings → Neuroon Search → Settings tab.

  3. Pulsas Verify Domain.

  4. El plugin envía:

    POST/api/plugin/shops/verify
    POST /api/plugin/shops/verify HTTP/1.1
    Host: dev-api.neuroon.ai
    X-Shop-API-Key: sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Origin: https://your-domain.example
    Content-Type: application/json

    {"domain": "https://your-domain.example"}
  5. Si el dominio normalizado coincide con el shop.url registrado, el backend devuelve:

    {
    "shopId": "shop_xxxxxxxx",
    "verificationCode": "vc_yyyyyyyy",
    "domain": "https://your-domain.example",
    "name": "Your Shop"
    }
  6. El plugin guarda neuroon_shop_id, neuroon_verification_code y marca neuroon_verified = 1 en wp_options. Las pestañas Products, Widget y Diagnostics aparecen.

Recuperar datos de verificación

Para inspeccionar el estado actual sin re-verificar:

GET/api/plugin/shops/{shopId}/verification-data
curl -s "https://dev-api.neuroon.ai/api/plugin/shops/$NEUROON_SHOP_ID/verification-data" \
-H "X-Shop-API-Key: $NEUROON_API_KEY" \
-H "Origin: https://your-domain.example"

Devuelve { verificationCode, instructions, verified } (VerificationDataDTO en ShopResponseDTO.java:25). Útil para diagnósticos sin tocar el flujo de escritura. Nota: el POST /verify devuelve un payload distinto (PluginVerificationDataDTO { shopId, verificationCode, domain, name }).

Desverificar (unverify)

Si vendes la tienda, mueves de dominio o quieres rotar credenciales:

DELETE/api/plugin/shops/{shopId}/verify
curl -X DELETE "https://dev-api.neuroon.ai/api/plugin/shops/$NEUROON_SHOP_ID/verify" \
-H "X-Shop-API-Key: $NEUROON_API_KEY" \
-H "Origin: https://your-domain.example"

Desde el admin, Settings tab → Unverify Domain dispara la misma llamada y limpia las opciones locales.

Rotar la API Key

Las API Keys son revocables. Si una key se ha filtrado:

  1. Genera una key nueva en el dashboard de Neuroon.
  2. Actualiza Settings → Neuroon Search → API Key y guarda.
  3. Revoca la antigua desde el dashboard.

El plugin no almacena la key en plano fuera de wp_options (neuroon_api_key). En entornos compartidos, restringe el acceso a la base de datos y considera mover la key a una constante en wp-config.php con un filtro propio.

Errores frecuentes

CódigoCausaSolución
401 UnauthorizedAPI Key inválida o revocadaRegenera y vuelve a pegar la key.
403 ForbiddenOrigin no coincide con el dominio registradoComprueba get_site_url(). Aliases (www. vs apex) deben coincidir con la URL almacenada en shop.url.
404 Not FoundEl shopId no existe o no pertenece a tu keyPulsa Verify Domain desde cero; el plugin reescribe neuroon_shop_id.
429 Too Many RequestsRate limit verification (20/min) o verify-action (5/5min) superadoEspera el Retry-After. El plugin lo absorbe vía Neuroon_Rate_Limit_Handler.

Buenas prácticas

  • Verifica desde el dominio canónico que vas a usar en producción. Si tu tienda fuerza https://www.example.com, no verifiques https://example.com.
  • No expongas la API Key al frontend. Solo se usa server-to-server desde PHP.
  • Re-verifica tras un cambio de URL (siteurl o home en WP). El backend compara normalizeUrl(domain) exacto.

Próximos pasos