rest-api – Cómo: Realizar solicitudes autenticadas por JWT a la API de WordPress

Pregunta:

Esta no es realmente una pregunta, sino una guía sobre cómo realizar solicitudes autenticadas a la API de WordPress usando JWT. Escribo esto como un recordatorio para mí y para aquellos que puedan necesitar ayuda con el mismo tema.

Respuesta:

Por qué la autenticación JWT

Estoy construyendo un sitio que usa WordPress como back-end y una aplicación React + Redux como front-end, así que estoy extrayendo todo el contenido en el front-end haciendo solicitudes a la API de WordPress. Algunas solicitudes (principalmente, solicitudes POST) deben autenticarse, que es cuando me encontré con JWT.

Lo que necesitamos

Para utilizar la autenticación JWT con WordPress, primero debemos instalar el complemento de la API de autenticación JWT para WP REST . Como se explica en las instrucciones del complemento, también necesitamos modificar algunos archivos centrales de WordPress. En particular:

En el archivo .htaccess incluido en la carpeta raíz de la instalación de WordPress, debemos agregar las siguientes líneas:

RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

En el archivo wp-config.php, también incluido en la carpeta raíz de la instalación de WordPress, necesitamos agregar estas líneas:

define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key'); // Replace 'your-top-secret-key' with an actual secret key.
define('JWT_AUTH_CORS_ENABLE', true);

Prueba para ver si JWT está disponible

Para verificar que ahora podemos usar JWT, inicie Postman y haga una solicitud al 'índice' predeterminado de la API de WordPress:

http://example.com/wp-json/

Se deberían haber agregado a la API algunos puntos finales nuevos, como /jwt-auth/v1 y /jwt-auth/v1/token . Si puede encontrarlos en la respuesta a la solicitud anterior, significa que JWT ya está disponible.

Obteniendo el token JWT

Quedémonos en Postman por el momento y solicitemos un token a la API de WordPress:

http://example.com/wp-json/jwt-auth/v1/token

La respuesta contendrá el token JWT, que es una clave cifrada que se parece a esto:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODg4OFwvZm90b3Jvb20tbmV4dCIsImlhdCI6MTUyMjU5NzQ1MiwibmJmIjoxNTIyNTk3NDUyLCJleHAiOjE1MjMyMDIyNTIsImRhdGEiOnsidXNlciI6eyJpZCI6IjEifX19.hxaaT9iowAX1Xf8RUM42OwbP7QgRNxux8eTtKhWvEUM

Hacer una solicitud autenticada

Intentemos cambiar el título de una publicación con un ID de 300 como ejemplo de una solicitud autenticada con JWT.

En Postman, elija POST como método y escriba el siguiente punto final:

http://example.com/wp-json/wp/v2/posts/300

Elija Sin autenticación en la pestaña Autorización y agregue lo siguiente en la pestaña Encabezados:

'Content-type': 'application/json', 
'Authorization': 'Bearer jwtToken' // Replace jwtToken with the actual token (the encrypted key above)

Finalmente, en la pestaña Cuerpo, seleccione las opciones sin formato y JSON (aplicación / json), luego en el editor justo debajo de las opciones, escriba lo siguiente:

{ "title": "YES! Authenticated requests with JWT work" }

Ahora puedes presionar ENVIAR. Mire en la pestaña de respuesta con todos los datos sobre la publicación que solicitamos: ¡el valor de la clave del título ahora debería ser YES! Authenticated requests with JWT work

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım