Esto no es realmente una pregunta, sino una guía sobre cómo realizar solicitudes autenticadas a la API de Wordpress utilizando JWT. Estoy escribiendo esto como un recordatorio para mí y para aquellos que pueden necesitar ayuda con el mismo tema.
rest-api
authentication
grazianodev
fuente
fuente
Respuestas:
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, por lo que estoy sacando 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 usar la autenticación JWT con Wordpress, primero debemos instalar la autenticación JWT para el complemento API WP REST . Como se explica en las instrucciones del complemento, también debemos modificar algunos archivos principales de Wordpress. En particular:
En el archivo .htaccess incluido en la carpeta raíz de la instalación de Wordpress, necesitamos agregar las siguientes líneas:
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:
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:
Algunos puntos finales nuevos, como
/jwt-auth/v1
y/jwt-auth/v1/token
deberían haberse agregado a la API. Si puede encontrarlos en la respuesta a la solicitud anterior, significa que JWT ahora está disponible.Obteniendo el token JWT
Quedémonos en Postman por el momento y solicitemos un token a la API de Wordpress:
La respuesta contendrá el token JWT, que es una clave cifrada que se parece a esto:
Hacer una solicitud autenticada
Intentemos cambiar el título de una publicación con una ID de 300 como ejemplo de una solicitud autenticada con JWT.
En Cartero, elija POST como método y escriba el siguiente punto final:
Elija Sin autenticación en la pestaña Autorización y agregue lo siguiente en la pestaña Encabezados:
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:
Ahora puedes presionar ENVIAR. Mire en la pestaña de respuestas con todos los datos sobre la publicación que solicitamos: el valor de la clave de título ahora debería ser
YES! Authenticated requests with JWT work
fuente
register_rest_route( 'jwt-auth/v1', 'your_custom_endpoint ...
. Cualquier cosa bajo / jwt-auth / necesitará autorizaciónComplementando la respuesta de @grazianodev, así es como obtienes tu token de autorización usando cURL:
Después de eso, envíe sus solicitudes con el encabezado: "Autorización: portador $ token"
Donde $ token es el token devuelto por la función getToken () anterior.
Personalmente utilizo el complemento " Desactivar API REST y requerir autenticación JWT / OAuth " para restringir el acceso a la API solo con el token anterior.
fuente