Come usare le REST-API di wordpress: Primo step abilitare JWT Authentication for WP REST API

INFORMATICA, TUTORIAL

Se stai leggendo questo articolo probabilmente  hai necessità di interagire con il tuo WP via API. In questo e nei prossimi articoli farò vedere come configurare ed usare WP attraverso delle chiamate REST sia per leggere che per scrivere nuovi articoli.

Giusto per iniziare con un esempio semplice, ricordando che  dal 2006 WordPress ha nativamente attivo il servizio restful api, possiamo fare una prova e verificare che ciò sia vero collegandosi al link:

https://<miodominio.com>/wp-json/wp/v2

Il risultato dovrebbe essere qualcosa del genere:

"namespace": "wp/v2",
"routes": {
"/wp/v2": {
"namespace": "wp/v2",
"methods": [
"GET"
],
"endpoints": [
{
"methods": [
"GET"
],
"args": {
"namespace": {
"default": "wp/v2",
"required": false
},
"context": {
"default": "view",
"required": false
}
}
}
],
"_links": {
"self": [
{
"href": "https://www.domsoria.com/wp-json/wp/v2"
}
]
}
},
"/wp/v2/posts": {
"namespace": "wp/v2",
"methods": [
"GET",
"POST"
],
"endpoints": [
{
"methods": [
"GET"
],
"args": {
"context": {
"description": "Scopo della richiesta; determina i campi che saranno presenti nella risposta.",
"type": "string",
"enum": [
"view",
"embed",
"edit"
],
"default": "view",
"required": false
},
"page": {
"description": "Pagina corrente dell'elenco.",
"type": "integer",
"default": 1,
"minimum": 1,
"required": false
},
"per_page": {
"description": "Numero massimo dei risultati da restituire nella serie dei risultati.",
"type": "integer",
"default": 10,
"minimum": 1,
"maximum": 100,
"required": false
},
"search": {
"description": "Limita la serie di risultati a quelli contententi una stringa.",
"type": "string",
"required": false
},
"after": {
"description": "Limita l'insieme dei risultati a risorse pubblicate dopo una data fornita nello standard ISO8601. ",
"type": "string",
"format": "date-time",
"required": false
},
"modified_after": {
"description": "Limita l'insieme dei risultati agli articoli pubblicati dopo una determinata data conforme allo standard ISO8601.",
"type": "string",
"format": "date-time",
"required": false
},
"author": {
"description": "Limita la serie di risultati agli articoli assegnati ad autori specifici.",
"type": "array",
"items": {
"type": "integer"
},
"default": [

],
"required": false
},
"author_exclude": {
"description": "Garantisce che la serie di risultati escluda gli articoli assegnati ad autori specifici.",
"type": "array",
"items": {
"type": "integer"
},
"default": [
.

.

.

la lista di cui sopra da indicazioni di tutti i metodi che è possibile invocare per interagire con WP. Un altro esempio molto semplice è quello del recupero di tutti i post pubblicati. Per ottenere infatti la lista dei post pubblicati/pubblici sarà sufficiente lanciare il seguente comando:

curl -X GET https://<miodominio.com>/wp-json/wp/v2/posts

oppure via web semplicemente collegandosi al seguente link:

 https://<miodominio.com>/wp-json/wp/v2/posts

Per poter effettuare delle operazioni di scrittura o leggere ad esempio dei post non pubblici sarà necessario prima di tutto eseguire una fase di autenticazione. Ovviamente ci sono diversi modi per potersi autenticare a WP tra cui usando la “basic authentication” passando login e password ma io preferisco utilizzare un meccanismo più robusto usando JWT Authentication.

Cerchiamo di capire come attivare il servizio di token auth via JWT. Prima di tutto sarà necessario installare il plugin: JWT Authentication for WP REST API.

Su questo punto non entro troppo in merito sarà sufficiente,, infatti, andare nella sezione plugin di WordPress ricercare il plugin chiamato appunto “JWT Authentication for WP-API” ed installare.

Completata la fase di installazione sarà necessario modificare le configurazioni in  wp-admin.php e .httacces

In particolare sarà necessario aggiungere in wp-admin.php

define('JWT_AUTH_SECRET_KEY', 'anyValueIsOk');

ed in .htaccess

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

 

Fatto ciò sarà sufficiente fare un test ed eseguire una prova di autenticazione.

Una via semplice è quella di usare ad esempio Postman

 

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments