Pregunta sobre Developing with WordPress de Wordpress:

La llamada Ajax REST ignora la autenticación básica

Un usuario preguntó 👇

Hola a todos,

Quiero hacer una llamada REST (que requiere autorización) a WordPress desde un sitio externo. He leído la documentación e instalado el plugin necesario para que funcione la autenticación básica.

Funciona perfectamente cuando se aplica a través de Postman. Pero cuando la solicitud Ajax (jQuery) se realiza desde mi sitio externo, parece que la solicitud siempre intenta utilizar la cookie de WordPress en lugar de la autenticación básica o intenta realizar la solicitud sin ninguna autorización en absoluto. Sigo recibiendo un error 401.

He intentado muchas formas de corregir la información de autorización y ninguna de ellas ha funcionado hasta ahora: beforeSend, campo de encabezados,… No se ignora, incluso si las credenciales inválidas interfieren con algo. La verificación de la solicitud en las herramientas de desarrollo de Chrome revela que el encabezado de autorización está configurado en los encabezados de la solicitud.

¿Qué debo hacer para realizar una llamada REST (quiero comentar por publicación) desde un sitio externo? ¡Aprecio cualquier idea!

Este tema fue modificado hace 2 años, 5 meses por. Este tema fue modificado hace 2 años, 5 meses por.

(@bcworkz)

Hace 2 años, 5 meses

Estás usando el Autenticación básica ¿enchufar? Tenga en cuenta que no es muy seguro. Recomiendo una de las alternativas.

Para usar técnicas de Ajax con Basic-Auth, me enfocaría en la autorización lanzando un encabezado «Autorizado» apropiado construido como WP_Http en mi primer enlace. En lugar de usar código jQuery / JavaScript para hacer eso. Codificación Base64 con btoa () (limitado a caracteres de 8 bits). Envíe encabezados al beforeSend: parámetro .ajax (). Creo que esto se hace con xhr.setRequestHeader (), pero estamos saliendo de mi área de especialización.

Lanzador de hilos

(@ dukan90)

Hace 2 años, 5 meses

Eso es exactamente lo que hice: enviar los encabezados autorizados correctos, con codificación btoa (), etc. He probado tantas versiones que he encontrado en Internet y nada ha funcionado hasta ahora. Cada vez que parece que se ignora el encabezado de autorización y se usa la cookie de autorización del usuario de inicio de sesión actual (cuando estoy dentro de un contexto de wordpress, por supuesto, error 401 en caso contrario).

Con respecto a varios métodos de autorización: he intentado utilizar el enfoque OAuth pero no estoy seguro de si este método es el camino a seguir para mi caso de uso: básicamente no tengo una sola aplicación del lado del cliente (HTML / JS) y haría solicitudes de autenticación a la API de WordPress. ¿Cómo abordaría esto en general?

(@bcworkz)

Hace 2 años, 5 meses

¿Qué cliente en concreto? ¿Navegador? En ese caso, esperaría la autenticación de cookies o haría solicitudes Ajax normales. No estoy seguro de dónde encajaría oAuth. Es cierto que es trivial de arreglar. También hay algunas otras opciones. Consulte el enlace «alternativas» en mi última respuesta. JSON Web Tokens suena perfecto para una aplicación JS, aunque no tengo experiencia con eso.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.