Estimados, buenas.
Estoy realizando pruebas de automatización en sitio de prueba: dominio.com
Al ejecutar test curl por consola recibo error 401, pero la API sí resuelve correctamente ya que el enlace https://dominio.com/wp-json/wp/v2/ muestra información desde un navegador.
Entiendo que es un problema de autenticacion, pero desconozco por qué ocurre. Estoy usando autenticacion basica convirtiendo a Base64 el valor usuario:contraseña para un usuario con perfil admin.
Envío consulta que estoy probando:
curl -k -X GET "https://dominio.com/wp-json/wp/v2/users/me" ^
-H "Authorization: Basic ZWRpdG9ytWFGGVyOlooOVhFMHEITHBRSTBLdUdLZkZuT2V0WA=="
¿Estaré haciendo algo mal?
Favor su ayuda, gracias.
Contenido solo visible a usuarios registrados
Hola Matias.
El error 401 Unauthorized indica que la autenticación no es válida.
Estás utilizando Windows o Mac ?
Si estás ejecutando esto en Windows, prueba cambiar el ^ por \ o escribirlo todo en una sola línea:
Contenido solo visible a usuarios registrados
Puedes conectarte al servidor desde la consola ?
Estás conectando con un rol de usuario adecuado ? Si el usuario de WordPress no tiene el rol adecuado, no podrá acceder a la API REST. Para ver los usuarios necesitas un usuario con rol Editor o superior ( Administrator). Si es un usuario con menos permisos, no podrás conectarte.
Un Saludo
Hola @pepesoler!
Gracias por la ayuda. Envío respuestas:
1. Utilizo Windows
2. Lo ejecuté todo en una sola línea pero aparece el mismo error
3. ¿Cómo me conecto al servidor desde consola?
4. Estoy probando con un usuario rol editor y otro administrador, en ambos responde el mismo error
Saludos!
Matias
Hola Matias.
El error, como te comenté antes, está en la autenticación con la API REST de WordPress, la contraseña tiene que ser la de Contraseñas de aplicación
.- Accede a WordPress -> Usuarios -> Perfil y edita tu perfil de usuario
.- Baja hasta la sección Contraseñas de aplicación.
.- Haz clic en Añadir nueva contraseña de aplicación.
.- Asigna un nombre a la contraseña (puede ser algo como "Acceso API").
.- Haz clic en Añadir nueva contraseña.
.- Copia la contraseña generada. Esta es la que usarás en lugar de tu contraseña normal.
Después de obtener la contraseña, puedes usarla en la cabecera de autenticación en el comando cURL de esta forma:
curl -k -X GET "https://dominio.com/wp-json/wp/v2/users/me" ^
-u "usuario:contraseña_de_aplicación"
Un Saludo