{"id":228819,"date":"2022-11-03T15:21:00","date_gmt":"2022-11-03T12:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228819"},"modified":"2022-11-09T04:23:31","modified_gmt":"2022-11-09T01:23:31","slug":"vad-aer-wordpress-anvaendarcacher","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/vad-aer-wordpress-anvaendarcacher\/","title":{"rendered":"Vad \u00e4r WordPress-anv\u00e4ndarcacher?"},"content":{"rendered":"<p>Om du n\u00e5gonsin har arbetat med ett projekt n\u00e4r du beh\u00f6ver arbeta med WordPress-autentiseringscookies, har du troligen snubblat \u00f6ver funktionen <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_auth_cookie<\/a>. Kort sagt, <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">denna funktion<\/a> :<\/p>\n<blockquote>\n<p>St\u00e4ller in autentiseringscookies baserade anv\u00e4ndar-ID.<\/p>\n<\/blockquote>\n<p>Och n\u00e4r du anv\u00e4nder den h\u00e4r funktionen skapar du i princip en cookie som anv\u00e4nds f\u00f6r att autentisera anv\u00e4ndaren f\u00f6r att logga in p\u00e5 WordPress.<\/p>\n<p>Men om du vill autentisera en anv\u00e4ndare med WordPress programmatiskt, s\u00e5 kr\u00e4vs det n\u00e5gra extra steg f\u00f6r att g\u00f6ra det ordentligt, s\u00e4rskilt om du arbetar med caching-plugins.<\/p>\n<p>Och det \u00e4r d\u00e4r WordPress-anv\u00e4ndarcacher kommer in i bilden.<\/p>\n<h2>WordPress anv\u00e4ndarcacher<\/h2>\n<p>F\u00f6rutom att bara skapa en autentiseringscookie \u00e4r det viktigt att se till att du g\u00f6r f\u00f6ljande:<\/p>\n<ul>\n<li>rensa anv\u00e4ndarens cacheminne,<\/li>\n<li>bli av med autentiseringscookies,<\/li>\n<li>st\u00e4ll in en aktuell anv\u00e4ndare,<\/li>\n<li>st\u00e4ll in autentiseringscookien,<\/li>\n<li>uppdatera anv\u00e4ndarens cacheminne.<\/li>\n<\/ul>\n<p>Det l\u00e5ter som en komplicerad l\u00f6sning, eller hur? Det fina \u00e4r att det finns en handfull funktioner (l\u00e4nkat ovan) som g\u00f6r detta riktigt enkelt.<\/p>\n<p>Det viktiga att komma ih\u00e5g \u00e4r att du beh\u00f6ver en instans av WP_User f\u00f6r att kunna g\u00f6ra allt detta. Hur du h\u00e4mtar en instans av anv\u00e4ndaren beror p\u00e5 funktionen hos din plugin.<\/p>\n<p>Det vill s\u00e4ga att du kanske kan h\u00e4mta en referens f\u00f6r en anv\u00e4ndare som f\u00e5tt <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-00-get-user-login-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ett anv\u00e4ndarnamn<\/a> :<\/p>\n<pre><code>&lt;?php\n$user = get_user_by( 'login', $username );<\/code><\/pre>\n<p>Eller s\u00e5 kanske du har en e-postadress som <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-01-get-user-email-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">du kan anv\u00e4nda<\/a> :<\/p>\n<pre><code>&lt;?php\n$user = get_user_by( 'email', $email );<\/code><\/pre>\n<p>Hur som helst m\u00e5ste f\u00f6ljande steg ha en anv\u00e4ndare om du ska g\u00f6ra detta korrekt. S\u00e5 med det sagt, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/e2c4ab9269420c3577485d36c373c54d#file-02-authenticate-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">s\u00e5 h\u00e4r kan koden se ut<\/a> :<\/p>\n<pre><code>&lt;?php\n\n\/\/ Clean out any cookies and cookies for an existing user.\nclean_user_cache( $user-&gt;ID );\nwp_clear_auth_cookie();\n\n\/\/ Set the current user and update the caches.\nwp_set_current_user( $user-&gt;ID );\nwp_set_auth_cookie( $user-&gt;ID, true, false );\nupdate_user_caches( $user );\n<\/code><\/pre>\n<p>Och det \u00e4r allt! S\u00e5 h\u00e4r \u00e4r beskrivningen av vad varje funktion g\u00f6r:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/clean_user_cache\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">clean_user_cache<\/a>. Detta tar bort all cachad anv\u00e4ndares information.<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_clear_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_clear_auth_cookie<\/a>. N\u00e4r en anv\u00e4ndare \u00e4r autentiserad med WordPress finns det en cookie som lagras. Detta tar bort den autentiseringskakan.<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_current_user\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_current_user<\/a>. Med tanke p\u00e5 en instans av WP_User, s\u00e4g \u00e5t WordPress att markera denna anv\u00e4ndare (som till\u00e5ter att han\/hon finns i databasen)<\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_set_auth_cookie\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_set_auth_cookie<\/a>. Detta kommer att skapa den cookie som anv\u00e4nds f\u00f6r autentisering f\u00f6r anv\u00e4ndaren som precis st\u00e4lldes in i f\u00f6reg\u00e5ende funktion.<\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/update_user_caches\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">update_user_caches<\/a>. Slutligen kommer detta att uppdatera anv\u00e4ndarcacharna med informationen med de nya \u00e5ren.<\/li>\n<\/ul>\n<p>N\u00e4r det g\u00e4ller att arbeta med WordPress-anv\u00e4ndarcache, autentisering och att g\u00e5 vidare med programmatiskt autentisering av anv\u00e4ndare, \u00e4r det dessa funktioner som b\u00f6r anv\u00e4ndas.<\/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>Om du vill autentisera en anv\u00e4ndare programmatiskt \u00e4r WordPress-anv\u00e4ndarcacher viktiga att f\u00f6rst\u00e5 n\u00e4r du g\u00e5r vidare.<\/p>\n","protected":false},"author":1,"featured_media":223663,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,901,807,724,868],"tags":[1173],"class_list":["post-228819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-php-9","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228819","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=228819"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228819\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/223663"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=228819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=228819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=228819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}