{"id":4081,"date":"2016-06-13T15:06:24","date_gmt":"2016-06-13T15:06:24","guid":{"rendered":"http:\/\/www.deuzebranaweb.com.br\/?p=4081"},"modified":"2016-06-13T15:06:24","modified_gmt":"2016-06-13T15:06:24","slug":"como-efetuar-logout-automatico-dos-usuarios-em-aplicacoes-wordpress","status":"publish","type":"post","link":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/2016\/06\/13\/como-efetuar-logout-automatico-dos-usuarios-em-aplicacoes-wordpress\/","title":{"rendered":"Como efetuar logout autom\u00e1tico dos usu\u00e1rios em aplica\u00e7\u00f5es WordPress"},"content":{"rendered":"<p>Em algumas situa\u00e7\u00f5es precisamos dar manuten\u00e7\u00e3o em projetos WordPress e \u00e9 necess\u00e1rio que nenhum usu\u00e1rio fa\u00e7a uso da aplica\u00e7\u00e3o, principalmente os usu\u00e1rios logados e com acesso a \u00e1rea administrativa. Aprenderemos uma forma simples e eficaz de for\u00e7ar os usu\u00e1rios fazerem login novamente, ou seja, for\u00e7ar o logout dos usu\u00e1rios em atividades.<\/p>\n<p>Antes disso, \u00e9 importante refor\u00e7ar a necessidade de desativar o arquivo wp-login.php \u2013 localizado na ra\u00edz de uma instala\u00e7\u00e3o WordPress \u2013 para os usu\u00e1rios n\u00e3o efetuarem o login novamente, enquanto voc\u00ea faz a manuten\u00e7\u00e3o. A desativa\u00e7\u00e3o do referido arquivo pode ser feita, por exemplo, renomeando-a ou o excluindo temporariamente. Ou ainda fazer uso dos ganchos presentes no arquivo e bloquear o acesso. Fica a seu crit\u00e9rio.<\/p>\n<p>Compreendido o cen\u00e1rio e desativado o arquivo wp-login.php, vamos a m\u00e1gica de efetuar o logout autom\u00e1tico dos usu\u00e1rios atrav\u00e9s do arquivo wp-config.php. Nesse arquivo reside oito constantes em que seus valores s\u00e3o chaves \u00fanicas de autentica\u00e7\u00e3o e salts. O que precisamos fazer \u00e9 simples: alterar seus valores e pronto. Observe abaixo um exemplo das constantes:<\/p>\n<div id=\"highlighter_838116\" class=\"syntaxhighlighter notranslate \">\n<div class=\"lines no-wrap\">\n<div class=\"line alt1\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>1<\/code><\/td>\n<td class=\"content\"><code class=\"plain\">define(<\/code><code class=\"string\">'AUTH_KEY'<\/code><code class=\"plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/code><code class=\"string\">'-8EC`-zs\/Tq%PB\/,qgZ*KR\/B=xi4 @!j7kMS&gt;@S\/=xr+}fk@a[#+(9igd]6p9~ai'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt2\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>2<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'SECURE_AUTH_KEY'<\/code><code class=\"plain\">,\u00a0 <\/code><code class=\"string\">'?=*c+K,Ae&lt;BL]r78 r-GvuX}c{7D8{RuH-?-79SB|_$H%,7#?TPm5[v_aI}#R&gt;+M'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt1\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>3<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'LOGGED_IN_KEY'<\/code><code class=\"plain\">,\u00a0\u00a0\u00a0 <\/code><code class=\"string\">'Y5N`FoV, `-MpIZJJ P&amp;o7`gWz\/,&gt;^M~+f6C-z2OyNFpD1ikaM#TKR8Z.@0LXc+C'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt2\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>4<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'NONCE_KEY'<\/code><code class=\"plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/code><code class=\"string\">'rdCo*:zZRL$ go-4$|x~3IYE6+nh|5,k:zY!^{5aa(j))46iAxZ&lt;+f&lt;;7^?!K5dU'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt1\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>5<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'AUTH_SALT'<\/code><code class=\"plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/code><code class=\"string\">']U`hs \/%KJ{paBGLYQ-0+PA{Y\/im*|1&gt;Pv77n-rX5~yq&lt;Vxj70&lt;\/}xu+-MSw.;?a'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt2\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>6<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'SECURE_AUTH_SALT'<\/code><code class=\"plain\">, <\/code><code class=\"string\">'Z-hPlpb\/H**#Ox7?4~ml||2zFy?&gt;0w4}1VO:~7o)^-N=,GaGH04bA,~0;rHDFj@L'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt1\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>7<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'LOGGED_IN_SALT'<\/code><code class=\"plain\">,\u00a0\u00a0 <\/code><code class=\"string\">'jfd \/yYi|uIN0F.I2$NfWWx6Bz+0(]i&lt;kA*VU%|2rTR@),uvlgv6lB03|dV8R4Q('<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"line alt2\">\n<table>\n<tbody>\n<tr>\n<td class=\"number\"><code>8<\/code><\/td>\n<td class=\"content\"><code class=\"spaces\">\u00a0<\/code><code class=\"plain\">define(<\/code><code class=\"string\">'NONCE_SALT'<\/code><code class=\"plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/code><code class=\"string\">':L-|6*d-QqB|!P0n|OU^mc!\/L?+6}-pE8,`52dqa*8N2K|+&amp;&amp;sgO.+*z(1&gt;I=O{v'<\/code><code class=\"plain\">);<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>O WordPress.org mant\u00e9m um servi\u00e7o para gerar essas chaves de forma autom\u00e1tica e facilitada. Basta acessar o endere\u00e7o https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/, copiar as chaves e colar no arquivo wp-config.php substitindo as anteriores.<\/p>\n<div id=\"attachment_39822\" class=\"wp-caption alignnone\">\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"size-large wp-image-39822 colorbox-38210\" src=\"http:\/\/imasters.com.br\/wp-content\/uploads\/2013\/03\/retorno-secret-key-wp.org_-620x148.png\" sizes=\"(max-width: 620px) 100vw, 620px\" srcset=\"http:\/\/imasters.com.br\/wp-content\/uploads\/2013\/03\/retorno-secret-key-wp.org_-620x148.png 620w, http:\/\/imasters.com.br\/wp-content\/uploads\/2013\/03\/retorno-secret-key-wp.org_-300x71.png 300w, http:\/\/imasters.com.br\/wp-content\/uploads\/2013\/03\/retorno-secret-key-wp.org_.png 752w\" alt=\"Exemplo de retorno do secret-key service do WordPress.org\" width=\"620\" height=\"148\" \/><\/p>\n<p class=\"wp-caption-text\">Exemplo de retorno do secret-key service do WordPress.org<\/p>\n<\/div>\n<p>Com isso, todos os cookies que foram criados ser\u00e3o desvalidados for\u00e7ando os usu\u00e1rios a efetuarem um novo login.<\/p>\n<p>O arquivo wp-config.php nos permite configurar o WordPress de forma avan\u00e7ada e j\u00e1 abordei o assunto em outra oportunidade no artigo intitulado como <a title=\"Configura\u00e7\u00f5es avan\u00e7adas para o WordPress\" href=\"http:\/\/imasters.com.br\/artigo\/15668\/wordpress\/configuracoes-avancadas-para-o-wordpress\/\">Configura\u00e7\u00f5es avan\u00e7adas para o WordPress.<\/a><\/p>\n<p>&nbsp;<br \/>\nhttp:\/\/imasters.com.br\/cms\/wordpress\/como-efetuar-logout-automatico-dos-usuarios-em-aplicacoes-wordpress\/?trace=1519021197&#038;source=single<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Em algumas situa\u00e7\u00f5es precisamos dar manuten\u00e7\u00e3o em projetos WordPress e \u00e9 necess\u00e1rio que nenhum usu\u00e1rio fa\u00e7a uso da aplica\u00e7\u00e3o, principalmente os usu\u00e1rios logados e com acesso a \u00e1rea administrativa. Aprenderemos uma forma simples e eficaz de for\u00e7ar os usu\u00e1rios fazerem login novamente, ou seja, for\u00e7ar&#8230;<\/p>\n","protected":false},"author":2,"featured_media":4082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_angie_page":false,"page_builder":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-4081","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=4081"}],"version-history":[{"count":0,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/4081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media\/4082"}],"wp:attachment":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=4081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=4081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=4081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}