{"id":231195,"date":"2022-12-29T10:44:00","date_gmt":"2022-12-29T07:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231195"},"modified":"2022-12-29T10:44:31","modified_gmt":"2022-12-29T07:44:31","slug":"skicka-auktoriseringsrubriker-med-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/skicka-auktoriseringsrubriker-med-wordpress\/","title":{"rendered":"Skicka auktoriseringsrubriker med WordPress"},"content":{"rendered":"<p>N\u00e4r vi g\u00f6r fj\u00e4rrf\u00f6rfr\u00e5gningar med WordPress kommer vi sannolikt att anv\u00e4nda n\u00e5gon av f\u00f6ljande funktioner:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_post\/https:\/\/developer.wordpress.org\/reference\/functions\/wp_remote_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_remote_post<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_safe_remote_post<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_remote_get\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_remote_get<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/sv\/fjaerrfoerfraagningar-med-wp_safe_remote_get\/\" title=\"wp_safe_remote_get\">wp_safe_remote_get<\/a><\/li>\n<\/ul>\n<p>Och ja, ibland kommer vi att anv\u00e4nda <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/skillnaden-mellan-curl-och-wordpress-foerfraagningar\/\" title=\"cURL\">cURL<\/a> beroende p\u00e5 projektets karakt\u00e4r, men det \u00e4r utanf\u00f6r inneh\u00e5llet i det h\u00e4r inl\u00e4gget.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159539-61e6f74b66e53.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159539-61e6f74b66e53.png\" alt=\"Skicka auktoriseringsrubriker med WordPress\"><\/a><\/p>\n<p>F\u00f6r den h\u00e4r artikeln vill jag prata specifikt om att g\u00f6ra fj\u00e4rrf\u00f6rfr\u00e5gningar och ange rubriker mot ett tredje parts API.<\/p>\n<h2>Auktoriseringsrubriker med WordPress<\/h2>\n<p>N\u00e4rhelst det kommer att g\u00f6ra asynkrona f\u00f6rfr\u00e5gningar med WordPress, g\u00e5r processen ofta s\u00e5 h\u00e4r:<\/p>\n<ol>\n<li>St\u00e4ll in JavaScript-funktionen f\u00f6r att ringa till serversidan (med en s\u00e4ker <a href=\"https:\/\/codex.wordpress.org\/WordPress_Nonces\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">nonce<\/a>, naturligtvis),<\/li>\n<li>L\u00e5t serversidan utf\u00f6ra f\u00f6rfr\u00e5gan med n\u00e5gon av de ovan n\u00e4mnda funktionerna,<\/li>\n<li>Returnera svaret antingen i form av ett <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_send_json_success\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">framg\u00e5ngs-<\/a> eller <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_send_json_error\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">felmeddelande<\/a> ,<\/li>\n<li>L\u00e5t JavaScript p\u00e5 klientsidan hantera svaret p\u00e5 det s\u00e4tt som verkar l\u00e4mpligt baserat p\u00e5 svaret.<\/li>\n<\/ol>\n<p>Men vad h\u00e4nder om API-beg\u00e4ran du beh\u00f6ver g\u00f6ra fr\u00e5n servern kr\u00e4ver n\u00e5got mer \u00e4n en grundl\u00e4ggande slutpunkt med n\u00e5gra parametrar?<\/p>\n<p>Mer specifikt, vad h\u00e4nder om det du skriver kr\u00e4ver att du tillhandah\u00e5ller n\u00e5gon typ av beh\u00f6righet f\u00f6r ditt arbete? Som tur \u00e4r l\u00e5ter WordPress oss st\u00e4lla in rubriker som l\u00f6ser just detta.<\/p>\n<p>Om du vill implementera n\u00e5got s\u00e5nt h\u00e4r, s\u00e5 kommer jag att anta att inneh\u00e5llstypen kommer att vara JSON och att auktoriseringen kommer att vara n\u00e5gon typ av token (dock kan din implementering variera beroende p\u00e5 vilket system du anv\u00e4nder arbetss\u00e4tt).<\/p>\n<p>I det h\u00e4r fallet kommer min token helt enkelt att identifieras som <strong>$token.<\/strong> Och h\u00e4r \u00e4r <a href=\"https:\/\/gist.github.com\/tommcfarlin\/b0050a06f124f9884b22426b1bd51989\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ett enkelt exempel:<\/a><\/p>\n<pre><code>&lt;?php\n\n$response = wp_safe_remote_post(\n    $url,\n    [\n        'headers'     =&gt; [\n            'Content-Type'  =&gt; 'application\/json',\n            'Authorization' =&gt; $token\n        ],\n        'body'        =&gt; wp_json_encode($args),\n        'method'      =&gt; 'POST',\n        'data_format' =&gt; 'body',\n    ]\n);<\/code><\/pre>\n<h2>N\u00e5got v\u00e4rt att notera<\/h2>\n<p>Om din v\u00e4rd k\u00f6rs p\u00e5 Apache och den h\u00e4r typen av beg\u00e4ran inte fungerar, kommer du sannolikt att beh\u00f6va uppdatera din <code>htaccess<\/code>fil s\u00e5 att den inneh\u00e5ller f\u00f6ljande regel: <code>SetEnvIf Authorization \"(.*)\" HTTP_AUTHORIZATION=$1<\/code>.<\/p>\n<p>Rekvisita till <a href=\"https:\/\/ggwi.cz\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">George<\/a> f\u00f6r att han kopplade upp mig med det.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ett exempel p\u00e5 hur man skickar auktorisering med WordPress, dess inbyggda API:er och eventuella webbserverjusteringar du kan beh\u00f6va g\u00f6ra.<\/p>\n","protected":false},"author":1,"featured_media":237098,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,901,922,724,868],"tags":[1173],"class_list":["post-231195","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-oevrig","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=231195"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231195\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/237098"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=231195"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=231195"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=231195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}