{"id":26222,"date":"2021-06-15T15:56:00","date_gmt":"2021-06-15T12:56:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26222"},"modified":"2021-10-18T03:00:27","modified_gmt":"2021-10-18T00:00:27","slug":"come-utilizzare-le-password-dell-applicazione-in-wordpress-per-l-autenticazione-dell-api-rest","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/come-utilizzare-le-password-dell-applicazione-in-wordpress-per-l-autenticazione-dell-api-rest\/","title":{"rendered":"Come utilizzare le password dell&#8217;applicazione in WordPress per l&#8217;autenticazione dell&#8217;API REST"},"content":{"rendered":"<p>Come sviluppatore di WordPress, devi essere a conoscenza dell&#8217;API REST in WordPress. WordPress fornisce un&#8217;interfaccia (API REST) \u200b\u200bper interagire con WordPress dalla tua applicazione. Queste applicazioni possono essere qualsiasi cosa sul frontend come React, Angular, altre applicazioni PHP.<\/p>\n<p>L&#8217;interazione tra la tua applicazione e WordPress comunica tramite richieste HTTP. Devi inviare una richiesta HTTP all&#8217;endpoint di WordPress. E per proteggere le tue applicazioni, tutte queste richieste dovrebbero provenire da risorse valide. Nessuno dovrebbe chiamare pubblicamente l&#8217;endpoint di WordPress. Per proteggere la chiamata API, WordPress accetta un <strong>token univoco<\/strong> nell&#8217;intestazione di autorizzazione. WordPress convalida questo token ed elabora la richiesta di conseguenza.<\/p>\n<p>WordPress 5.6 ha introdotto una nuova funzionalit\u00e0 &quot;Password dell&#8217;applicazione&quot;. In pratica ti consente di creare un token dalla dashboard di WordPress che pu\u00f2 essere utilizzato nell&#8217;intestazione dell&#8217;autorizzazione.<\/p>\n<p>In questo articolo, studiamo come utilizzare le password delle applicazioni con l&#8217;API REST di WordPress. Scriveremo il codice di esempio per l&#8217;API REST in cURL, Guzzle e jQuery.<\/p>\n<h3>Genera password per applicazioni in WordPress<\/h3>\n<p>WordPress 5.6 per impostazione predefinita aggiunge la sezione &quot;Password applicazione&quot; nella pagina <strong>Utenti-&gt;Profilo<\/strong>. Questa funzione \u00e8 disponibile per tutti i siti serviti su SSL\/HTTPS. Se il tuo sito non \u00e8 su HTTPS, puoi abilitare questa funzione utilizzando il filtro sottostante.<\/p>\n<pre><code>add_filter( 'wp_is_application_passwords_available', '__return_true' );<\/code><\/pre>\n<p>Andate a <strong>&gt; Profilo Utenti-<\/strong> pagina e generare la password, fornendo un nome di applicazione. WordPress quindi produce una password che puoi utilizzare nella tua applicazione frontend per le richieste HTTP. Sebbene WordPress ti dia una password con spazi, puoi usare questa password con o senza spazi. WordPress elimina gli spazi alla fine.<\/p>\n<p>Hai la password dell&#8217;applicazione. Ora devi generare un token valido per l&#8217;intestazione di autorizzazione. Un token valido \u00e8 una combinazione del nome utente del sito WordPress e della password dell&#8217;applicazione in formato codificato base64. L&#8217;utente pu\u00f2 generarlo facilmente come segue.<\/p>\n<pre><code>&lt;?php\n$username = 'admin'; \/\/ site username\n$application_password = 'Ho9c 9vGs AOBG nXb0 FPpr W5vO';\n\u00a0\u00a0\necho base64_encode($username.':'.$application_password);<\/code><\/pre>\n<p>Nel codice sopra, ho passato il nome utente &quot;admin&quot; e la mia password dell&#8217;applicazione. Modifica questi valori in base alle tue credenziali. Infine, otterrai la versione codificata base64 di un token valido. Ora vediamo come chiamare l&#8217;API REST di WordPress utilizzando questo token.<\/p>\n<h3>Chiamare l&#8217;API REST di WordPress<\/h3>\n<p>WordPress fornisce diversi endpoint che riceveranno richieste API dalla tua applicazione. Scorri l&#8217;elenco degli <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">endpoint disponibili in WordPress<\/a>. Oltre a questi endpoint disponibili, puoi anche <a href=\"https:\/\/themewp.inform.click\/it\/come-aggiungere-endpoint-personalizzati-all-api-di-wordpress\/\" title=\"aggiungere i tuoi endpoint personalizzati in WordPress\">aggiungere i tuoi endpoint personalizzati in WordPress<\/a>.<\/p>\n<p>Per motivi di tutorial, prendo un esempio dell&#8217;endpoint di Post per la creazione di un post. Per creare un post in WordPress, devi inviare richieste POST con parametri su questo endpoint <code>SITE_URL\/wp-json\/wp\/v2\/posts<\/code>.<\/p>\n<p>Ora, vediamo come chiamare questo endpoint usando cURL, Guzzle e jQuery. Sulla base della tua domanda, puoi prendere un riferimento da una qualsiasi delle opzioni seguenti.<\/p>\n<h4>API REST di WordPress utilizzando PHP cURL<\/h4>\n<p>Potresti creare la tua applicazione in PHP. L&#8217;utente pu\u00f2 interagire con WordPress dalla propria applicazione PHP utilizzando cURL e Guzzle. Nel caso di cURL, assicurati che l&#8217;estensione cURL sia abilitata sul tuo server. Successivamente, puoi utilizzare il codice seguente che creer\u00e0 il post in WordPress.<\/p>\n<pre><code>&lt;?php\n$username = 'admin';\n$application_password = 'MGOw EG9V 04xo sUZ0 60wo J2OG';\n\u00a0\n$url = 'SITE_URL\/wp-json\/wp\/v2\/posts';\n\u00a0\u00a0\n$json = json_encode([\n\u00a0\u00a0\u00a0\u00a0'title' =&gt; 'Post using REST API',\n\u00a0\u00a0\u00a0\u00a0'content' =&gt; 'Post content using REST API',\n\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'publish',\n]);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init($url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$application_password);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application\/json']);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_TIMEOUT, 10);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POST, 1);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POSTFIELDS, $json);\n\u00a0\u00a0\u00a0\u00a0$result = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n\u00a0\u00a0\u00a0\u00a0curl_close($ch);\n\u00a0\u00a0\u00a0\u00a0print_r(json_decode($result));\n} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Assicurati di sostituire i valori di nome utente, password dell&#8217;applicazione e SITE_URL con i tuoi valori effettivi. Esegui questo codice e il tuo post verr\u00e0 creato nella dashboard di WordPress.<\/p>\n<h4>API REST di WordPress utilizzando Guzzle in PHP<\/h4>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> \u00e8 un&#8217;alternativa a cURL. \u00c8 un client HTTP PHP che semplifica l&#8217;invio di richieste HTTP e banale l&#8217;integrazione con le API REST. Installa la libreria Guzzle usando il comando:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Successivamente, il tuo codice per creare un post utilizzando l&#8217;API REST di WordPress e Guzzle sar\u00e0 il seguente.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$username = 'admin';\n$application_password = 'MGOw EG9V 04xo sUZ0 60wo J2OG';\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'SITE_URL',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('POST', '\/wp-json\/wp\/v2\/posts', [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'title' =&gt; 'Post using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'content' =&gt; 'Post content using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'publish',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"headers\" =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Basic \". base64_encode($username.':'.$application_password)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0print_r($arr_body);\n} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Qui, sto usando la <code>base64_encode()<\/code>funzione di PHP per codificare la stringa. Nel caso di cURL, non era necessario farlo esplicitamente. Il cURL codifica la stringa da solo.<\/p>\n<h4>API REST di WordPress utilizzando jQuery<\/h4>\n<p>Quando si tratta di jQuery, normalmente diamo una chiamata API quando si attiva un evento specifico. Questo evento pu\u00f2 essere qualsiasi cosa, come fare clic, modificare, caricare, ecc. Non sto scrivendo su nessun evento. Invece, scrivo direttamente il codice che puoi avvolgere all&#8217;interno dei tuoi eventi.<\/p>\n<pre><code>&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\" integrity=\"sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx\/qtq\/1itJ0C2ejDxltZVFg==\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\n&lt;script&gt;\njQuery(function($) {\n\u00a0\u00a0\u00a0\u00a0var username = 'admin';\n\u00a0\u00a0\u00a0\u00a0var application_password = 'MGOw EG9V 04xo sUZ0 60wo J2OG';\n\u00a0\u00a0\u00a0\u00a0$.ajax({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type: 'POST',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: 'SITE_URL\/wp-json\/wp\/v2\/posts',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0beforeSend: function(xhr) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0token = btoa(username + ':' + application_password)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xhr.setRequestHeader('Authorization', 'Basic ' + token);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'title': 'Post using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'content': 'Post content using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status': 'publish'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0success:function(response) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0});\n});\n&lt;\/script&gt;<\/code><\/pre>\n<p>Nel codice sopra, sto usando il metodo <code>btoa<\/code>. Il <code>btoa()<\/code>metodo codifica una stringa in base 64. Puoi anche vedere la risposta dell&#8217;API nella console del tuo browser.<\/p>\n<p>Spero che tu possa imparare a utilizzare le password delle applicazioni in WordPress con la tua applicazione. Mi piacerebbe sentire i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-aggiungere-endpoint-personalizzati-all-api-di-wordpress\/\" title=\"Come aggiungere endpoint personalizzati all&#039;API di WordPress\">Come aggiungere endpoint personalizzati all&#8217;API di WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-utilizzare-guzzle-un-client-http-php-per-l-invio-di-richieste-http\/\" title=\"Come utilizzare Guzzle: un client HTTP PHP per l&#039;invio di richieste HTTP\">Come utilizzare Guzzle: un client HTTP PHP per l&#8217;invio di richieste HTTP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/accedi-con-il-numero-di-telefono-in-wordpress\/\" title=\"Accedi con il numero di telefono in WordPress\">Accedi con il numero di telefono in WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo, studiamo come utilizzare le password dell&#8217;applicazione in WordPress per l&#8217;autenticazione dell&#8217;API REST. Devi usare la password dell&#8217;applicazione<\/p>\n","protected":false},"author":1,"featured_media":20206,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[500,611],"tags":[846],"class_list":["post-26222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-uncategorized-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=26222"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/26222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/20206"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=26222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=26222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=26222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}