{"id":34308,"date":"2020-01-31T08:15:10","date_gmt":"2020-01-31T16:15:10","guid":{"rendered":"https:\/\/kinsta.com\/?p=6351"},"modified":"2025-02-18T06:48:37","modified_gmt":"2025-02-18T09:48:37","slug":"compartilhar-logins-e-usuarios","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/","title":{"rendered":"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites WordPress"},"content":{"rendered":"<p>Nosso objetivo \u00e9 criar dois sites WordPress que ir\u00e3o compartilhar logins e os mesmos usu\u00e1rios. Uma vez que um usu\u00e1rio tenha subscrito um site, ela poder\u00e1 acessar o outro site com a mesma fun\u00e7\u00e3o e as mesmas capacidades.<\/p>\n<p>Para alcan\u00e7ar este objetivo, devemos ser capazes de editar o <a href=\"https:\/\/kinsta.com\/pt\/blog\/wp-config-php\/\">arquivo de configura\u00e7\u00e3o do WordPress<\/a> e atualizar as tabelas do banco de dados. Um entendimento geral da arquitetura do WordPress e da <a href=\"https:\/\/codex.wordpress.org\/Database_Description\">estrutura do banco de dados<\/a> \u00e9 essencial, assim como um conhecimento b\u00e1sico do desenvolvimento do WordPress. N\u00e3o te preocupes se n\u00e3o \u00e9s um profissional. Basta seguir as diretivas deste post e fazer as suas perguntas nos coment\u00e1rios.<\/p>\n<p>Antes de come\u00e7armos a codificar, precisamos saber onde o WordPress armazena as <a href=\"https:\/\/kinsta.com\/pt\/blog\/funcoes-usuario-wordpress\/\">fun\u00e7\u00f5es e capacidades do usu\u00e1rio<\/a>. Portanto, o nosso primeiro passo \u00e9 mergulhar fundo nas tabelas da base de dados.<\/p>\n<p><strong>Importante:<\/strong> O seguinte n\u00e3o funcionar\u00e1 fora da caixa no ambiente Kinsta, devido ao fato de s\u00f3 permitirmos uma instala\u00e7\u00e3o do WordPress para cada site (a menos que voc\u00ea esteja executando <a href=\"https:\/\/kinsta.com\/pt\/hospedagem-wordpress\/multisite\/\">o WordPress multisite<\/a>). Pode ser poss\u00edvel p\u00f4r isto a funcionar na nossa plataforma, mas isso exigiria alguma configura\u00e7\u00e3o ou desenvolvimento adicional. Recomendamos discutir isso com um <a href=\"https:\/\/kinsta.com\/pt\/blog\/contrate-um-desenvolvedor-do-wordpress\/\">desenvolvedor de WordPress<\/a>.<\/p>\n<ul>\n<li><a href=\"#user-data-metadata\">Dados e Metadados do Usu\u00e1rio<\/a><\/li>\n<li><a href=\"#custom-user-tables\">Definindo tabelas personalizadas de usu\u00e1rios &#8211; Share Logins<\/a><\/li>\n<li><a href=\"#installing-wordpress\">Instalando o WordPress<\/a><\/li>\n<li><a href=\"#roles-capabilities\">Pap\u00e9is e Capacidades<\/a><\/li>\n<li><a href=\"#duplicate-caps-and-levels\">Duplicar automaticamente tampas e n\u00edveis com uma fun\u00e7\u00e3o<\/a><\/li>\n<\/ul>\n<h2 id=\"user-data-metadata\">Dados e Metadados do Usu\u00e1rio<\/h2>\n<p>Por padr\u00e3o, o WordPress armazena dados relacionados ao usu\u00e1rio em tr\u00eas tabelas: <code>{$pref}options<\/code>, <code>{$pref}users<\/code> e <code>{$pref}usermeta<\/code>.<\/p>\n<ul style=\"margin-left: 30px\">\n<li>A tabela de <code>{$pref}options<\/code> armazena a lista completa de fun\u00e7\u00f5es e capacidades dispon\u00edveis em uma linha cujo campo de op\u00e7\u00e3o \u00e9 <code>{$pref}user_roles<\/code>.<\/li>\n<li>A tabela de <code>{$pref}users<\/code> armazena dados b\u00e1sicos do usu\u00e1rio, como login, senha, e-mail, url, etc.<\/li>\n<li>A tabela <code>{$pref}usermeta<\/code>a armazena os metadados do usu\u00e1rio.<\/li>\n<\/ul>\n<p>Ao trabalhar em novas instala\u00e7\u00f5es do WordPress, n\u00e3o temos que nos preocupar com a linha <code>{$pref}user_roles<\/code> na tabela de <code>{$pref}options<\/code>, porque o campo option_value correspondente tem sempre o mesmo valor. Devemos considerar esta linha no caso de estarmos a trabalhar em instala\u00e7\u00f5es existentes onde as fun\u00e7\u00f5es ou capacidades tenham sido alteradas.<br \/>\nN\u00e3o se preocupe tamb\u00e9m com a tabela de <code>{$pref}users<\/code>, pois ela armazena dados b\u00e1sicos do usu\u00e1rio que n\u00e3o ser\u00e3o alterados quando compartilharmos usu\u00e1rios entre sites.<br \/>\nA tabela <code>{$pref}usermeta<\/code> \u00e9 a \u00fanica tabela que vamos atualizar para atingir o nosso objetivo.<\/p>\n<figure style=\"width: 433px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/tabela.png\" alt=\"utilizadores e estrutura da tabela usermeta\" width=\"433\" height=\"269\"><figcaption class=\"wp-caption-text\">utilizadores e estrutura da tabela usermeta <br \/>(fonte: Codex <a href=\"https:\/\/codex.wordpress.org\/Database_Description\">Database Description<\/a>)<\/figcaption><\/figure>\n<p><code>{$pref}usermeta<\/code> armazena os metadados do usu\u00e1rio em pares chave\/valor. Nesta tabela, cinco linhas armazenam os dados que temos de considerar.<\/p>\n<figure style=\"width: 576px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/usermeta.png\" alt=\"Cinco linhas na tabela usermeta armazenam dados relativos \u00e0s capacidades do utilizador, n\u00edvel e defini\u00e7\u00f5es do painel de instrumentos\" width=\"576\" height=\"144\"><figcaption class=\"wp-caption-text\">Cinco linhas na tabela usermeta armazenam dados relativos \u00e0s capacidades do utilizador, n\u00edvel e defini\u00e7\u00f5es do painel de instrumentos<\/figcaption><\/figure>\n<p>A primeira linha tem o campo meta_key definido como <code>{$pref}capacidades<\/code>, e o campo meta_value correspondente \u00e9 um array serializado contendo a fun\u00e7\u00e3o do usu\u00e1rio. A segunda linha armazena o n\u00edvel de usu\u00e1rio (note que os n\u00edveis de usu\u00e1rio s\u00e3o depreciados do WordPress 3.0). As tr\u00eas filas restantes dizem respeito \u00e0s configura\u00e7\u00f5es do painel de instrumentos em que n\u00e3o vamos mergulhar neste posto. A fun\u00e7\u00e3o, n\u00edvel e configura\u00e7\u00f5es do usu\u00e1rio s\u00e3o espec\u00edficos para a instala\u00e7\u00e3o do WordPress e s\u00e3o identificados pelo mesmo valor de <code>$pref<\/code>. \u00c9 uma informa\u00e7\u00e3o importante quando o nosso objetivo \u00e9 partilhar utilizadores entre websites, porque teremos de duplicar estas linhas e alterar o campo <code>meta_key<\/code> em conformidade.<\/p>\n<p>\u00c9 tudo o que temos de saber sobre tabelas de utilizadores quando pretendemos partilhar logins e utilizadores entre as novas instala\u00e7\u00f5es do WordPress. Ao trabalhar em sites existentes, devemos considerar que muitos plugins adicionam linhas extras ao <code>{$pref}usermeta<\/code>, e podemos ser obrigados a ter uma vis\u00e3o mais profunda das tabelas de banco de dados.<\/p>\n<p>Dito isto das tabelas de utilizadores, podemos dar um passo em frente. Agora temos de definir duas constantes espec\u00edficas no ficheiro<em> wp-config.php.<\/em><\/p>\n<h2 id=\"custom-user-tables\">Definindo tabelas personalizadas de usu\u00e1rios &#8211; Share Logins<\/h2>\n<p>O WordPress permite-nos definir tabelas personalizadas em vez de <code>{$pref}users<\/code> e <code>{$pref}usermeta<\/code>. Isto significa que se dois (ou mais) sites WordPress compartilham um <a href=\"https:\/\/kinsta.com\/pt\/blog\/banco-de-dados-wordpress\/\">banco de dados<\/a>, podemos definir os mesmos usu\u00e1rios e tabelas usermeta para todos eles. Como consequ\u00eancia, todos os sites que partilham estas tabelas ir\u00e3o partilhar os mesmos utilizadores.<\/p>\n<div class=\"warning\" style=\"background: #FFFCE3;padding: 22px;margin-bottom: 22px\">Nota: Para compartilhar os mesmos usu\u00e1rios e tabelas usermeta, as instala\u00e7\u00f5es do WordPress devem compartilhar o mesmo banco de dados.<\/div>\n<p>S\u00f3 precisamos definir <code>CUSTOM_USER_TABLE<\/code> e <code>CUSTOM_USER_META_TABLE<\/code> no arquivo<em> wp-config.php<\/em>, como mostrado no c\u00f3digo a seguir:<\/p>\n<pre><code class=\"language-php\">\/\/ custom users and usermeta tables\ndefine( 'CUSTOM_USER_TABLE', 'my_users_table' );\ndefine( 'CUSTOM_USER_META_TABLE', 'my_usermeta_table' );\n<\/code><\/pre>\n<div class=\"warning\" style=\"background: #FFFCE3;padding: 22px;margin-bottom: 22px\">Nota: Nos sites existentes \u00e9 obrigat\u00f3rio fazer backup das instala\u00e7\u00f5es do WordPress antes de fazer qualquer altera\u00e7\u00e3o nos arquivos wp-config.php e nas tabelas de dados.<\/div>\n<p>Agora que sabemos o que tem de ser feito, \u00e9 altura de executar as nossas duas instala\u00e7\u00f5es WordPress.<\/p>\n<h2 id=\"installing-wordpress\">Instalando o WordPress<\/h2>\n<p>Por conveni\u00eancia, vou nomear as pastas raiz do WordPress <em>primeiro<\/em> e <em>segundo<\/em>. <code>first_<\/code> e <code>second_<\/code> ser\u00e3o os respectivos prefixos da tabela.<br \/>\nAgora vamos fazer a primeira instala\u00e7\u00e3o.<\/p>\n<figure style=\"width: 753px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/first_install.png\" alt=\"Neste exemplo, definimos o campo de prefixo da tabela como first_\" width=\"753\" height=\"571\"><figcaption class=\"wp-caption-text\">Neste exemplo, definimos o campo de prefixo da tabela como first_<\/figcaption><\/figure>\n<div class=\"warning\" style=\"background: #FFFCE3;padding: 22px;margin-bottom: 22px\">Nota: Todas as instala\u00e7\u00f5es ir\u00e3o compartilhar uma \u00fanica base de dados, e devemos fornecer a cada instala\u00e7\u00e3o um prefixo de tabela \u00fanico.<\/div>\n<p>Quando o primeiro site WordPress estiver instalado e funcionando, podemos editar seu arquivo de configura\u00e7\u00e3o. <em>Abra \/first\/wp-config.php<\/em> e adicione as seguintes linhas acima do coment\u00e1rio<em> &#8216;pare de editar&#8217;:<\/em><\/p>\n<pre><code class=\"language-php\">$table_prefix  = 'first_';\n\ndefine('WP_DEBUG', true);\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );\n@ini_set( 'display_errors', 0 );\n\n\/\/ custom users and usermeta tables\ndefine( 'CUSTOM_USER_TABLE', $table_prefix . 'users' );\ndefine( 'CUSTOM_USER_META_TABLE', $table_prefix . 'usermeta' );\n\n\/* That's all, stop editing! Happy blogging. *\/\n<\/code><\/pre>\n<p>N\u00f3s ativamos o modo de debug for\u00e7ando o WordPress a armazenar avisos de erro e avisos no arquivo <em>debug.log<\/em> (leia mais sobre este t\u00f3pico em <a href=\"https:\/\/kinsta.com\/pt\/blog\/wp-config-php\/\">Uma vis\u00e3o aprofundada sobre como configurar o WordPress<\/a>).<br \/>\nDepois, definimos as constantes <code>CUSTOM_USER_TABLE<\/code> e <code>CUSTOM_USER_META_TABLE<\/code> para as tabelas <code>first_users<\/code> e <code>first_usermeta<\/code>. Desta forma, n\u00e3o vamos alterar as configura\u00e7\u00f5es padr\u00e3o do WordPress.<\/p>\n<p>Terminamos com a primeira instala\u00e7\u00e3o. A seguir temos de copiar o <em>wp-config.php<\/em> da primeira pasta de instala\u00e7\u00e3o e col\u00e1-lo na pasta raiz da segunda instala\u00e7\u00e3o. Tenha o cuidado de alterar o valor<em> $table_prefix de<\/em> acordo:<\/p>\n<pre><code class=\"language-php\">$table_prefix  = 'second_';\n\ndefine('WP_DEBUG', true);\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );\n@ini_set( 'display_errors', 0 );\n\n\/\/ custom users and usermeta tables\ndefine( 'CUSTOM_USER_TABLE', 'first_users' );\ndefine( 'CUSTOM_USER_META_TABLE', 'first_usermeta' );\n<\/code><\/pre>\n<p><code>CUSTOM_USER_TABLE<\/code> e <code>CUSTOM_USER_META_TABLE<\/code> s\u00e3o definidos para os valores da primeira instala\u00e7\u00e3o: <code>first_users<\/code> e <code>first_usermeta<\/code>. Isso \u00e9 tudo para a primeira instala\u00e7\u00e3o.<\/p>\n<figure style=\"width: 755px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/second_setup.png\" alt=\"share logins\" width=\"755\" height=\"568\"><figcaption class=\"wp-caption-text\">O WordPress est\u00e1 ciente dos usu\u00e1rios existentes e devemos definir um endere\u00e7o de e-mail inexistente para o usu\u00e1rio administrador<\/figcaption><\/figure>\n<p>Ao executar a segunda instala\u00e7\u00e3o, devemos definir um endere\u00e7o de e-mail inexistente para o usu\u00e1rio administrador, pois o WordPress encontra um n\u00famero de usu\u00e1rios existentes na tabela <code>first_users<\/code>.<\/p>\n<figure style=\"width: 747px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/administrador_usuario.png\" alt=\"WordPress cria um nome de usu\u00e1rio administrador para a segunda instala\u00e7\u00e3o\" width=\"747\" height=\"349\"><figcaption class=\"wp-caption-text\">WordPress cria um nome de usu\u00e1rio administrador para a segunda instala\u00e7\u00e3o<\/figcaption><\/figure>\n<p>Entre no segundo painel de administra\u00e7\u00e3o da instala\u00e7\u00e3o como administrador e liste os usu\u00e1rios do WordPress. Voc\u00ea encontrar\u00e1 o novo usu\u00e1rio administrador e todos os usu\u00e1rios do primeiro site (isso permite que eles compartilhem logins). Neste ponto, os usu\u00e1rios de um site n\u00e3o poder\u00e3o entrar no outro site.<\/p>\n<figure style=\"width: 793px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/segundo_install_usuarios.png\" alt=\"Os usu\u00e1rios do segundo site n\u00e3o herdar\u00e3o suas fun\u00e7\u00f5es do primeiro site\" width=\"793\" height=\"423\"><figcaption class=\"wp-caption-text\">Os usu\u00e1rios do segundo site n\u00e3o herdar\u00e3o suas fun\u00e7\u00f5es do primeiro site<\/figcaption><\/figure>\n<p>Para conceder aos utilizadores as mesmas capacidades em ambos os sites, temos de atualizar a tabela <code>{$pref}usermeta<\/code>.<\/p>\n<h2 id=\"roles-capabilities\">Pap\u00e9is e Capacidades<\/h2>\n<p>Se voc\u00ea estiver executando novas instala\u00e7\u00f5es do WordPress, voc\u00ea n\u00e3o precisa se preocupar com a tabela de <code>{$pref}options<\/code>. Voc\u00ea s\u00f3 precisa atualizar a tabela <code>{$pref}usermeta<\/code>.<\/p>\n<p>No nosso exemplo, quando um novo usu\u00e1rio \u00e9 criado no primeiro site, o WordPress adiciona as <code>first_capabilities<\/code> e as <code>first_user_level<\/code> na tabela <code>first_usermeta<\/code>. Para dar acesso ao segundo site, estas linhas devem ser duplicadas, como mostra a imagem abaixo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2016\/09\/second_usermeta_fields.png\" alt=\"second_usermeta_fields\" width=\"794\" height=\"129\"><\/p>\n<p>Quando um novo utilizador \u00e9 criado no segundo website, as <code>second_capabilities<\/code> do segundo_utilizador e as linhas do <code>second_user_level<\/code> adicionadas \u00e0 tabela <code>first_usermeta<\/code>. A<br \/>\nfim de dar as mesmas fun\u00e7\u00f5es e limites aos usu\u00e1rios em todos os sites, as <code>first_capabilities<\/code> e linhas de <code>first_user_level<\/code> devem ser duplicadas em <code>second_capabilities<\/code> e <code>second_user_level<\/code>. Com estes dois pares de linhas na mesma tabela <code>first_usermeta<\/code>, os usu\u00e1rios poderiam acessar os dois sites com os mesmos privil\u00e9gios.<\/p>\n<p>Para atualizar todas as linhas de usermeta existentes voc\u00ea pode executar uma consulta SQL ou atualizar tabelas a partir do <a href=\"https:\/\/kinsta.com\/pt\/docs\/hospedagem-de-wordpress\/gerenciamento-de-banco-de-dados\/acesso-ao-banco-de-dados-wordpress\/\">phpMyAdmin<\/a>. Mas o que para os utilizadores que v\u00e3o subscrever os nossos sites a partir de agora? De acordo com o <a href=\"https:\/\/codex.wordpress.org\/Editing_wp-config.php#Custom_User_and_Usermeta_Tables\">Codex WordPress<\/a>, n\u00f3s usar\u00edamos um plugin ou construiremos uma fun\u00e7\u00e3o personalizada.<br \/>\nE l\u00e1 vamos n\u00f3s!<\/p>\n<h2 id=\"duplicate-caps-and-levels\">Duplicar automaticamente tampas e n\u00edveis com uma fun\u00e7\u00e3o<\/h2>\n<p><code>set_user_role<\/code> \u00e9 um gancho de a\u00e7\u00e3o que aciona sempre que um novo usu\u00e1rio \u00e9 criado ou que a fun\u00e7\u00e3o de um usu\u00e1rio existente foi editada. Gra\u00e7as a esta a\u00e7\u00e3o, podemos automatizar as atualiza\u00e7\u00f5es da tabela usermeta.<br \/>\nPortanto, no arquivo principal de um plugin, adicione a seguinte fun\u00e7\u00e3o:<\/p>\n<pre><code class=\"language-php\">function ksu_save_role( $user_id, $role ) {\n\n\t\/\/ Site 1\n\t\/\/ Change value if needed\n\t$prefix_1 = 'first_';\n\t\n\t\/\/ Site 2 prefix\n\t\/\/ Change value if needed\n\t$prefix_2 = 'second_';\n\t\n\t$caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );\n\t$level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );\n\n\tif ( $caps ){\n\t\tupdate_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );\n\t}\n\n\tif ( $level ){\n\t\tupdate_user_meta( $user_id, $prefix_2 . 'user_level', $level );\n\t}\n}\n\nadd_action( 'set_user_role', 'ksu_save_role', 10, 2 );\n<\/code><\/pre>\n<p>A fun\u00e7\u00e3o de retorno mant\u00e9m tr\u00eas argumentos, dois dos quais s\u00e3o necess\u00e1rios: <code>$user<\/code>_id e <code>$role<\/code>.<br \/>\nO que a fun\u00e7\u00e3o faz \u00e9 bastante auto-explicativa. get_user_meta retorna o valor do meta-campo do usu\u00e1rio especificado. Chamamos esta fun\u00e7\u00e3o duas vezes para recuperar os campos <code>first_capabilities<\/code> e <code>first_user_level<\/code>. Depois utilizamos estes valores para adicionar os campos <code>second_capabilities<\/code> e <code>second_user_level<\/code> \u00e0 tabela <code>first_usermeta<\/code>.<\/p>\n<p>Carregue o an\u00fancio para ativar este plugin no primeiro site.<\/p>\n<p>Para que as instala\u00e7\u00f5es funcionem simetricamente, s\u00f3 precisamos carregar e ativar o plugin em qualquer instala\u00e7\u00e3o, mas definindo os valores corretos para prefixos. Por exemplo, se ativarmos esta funcionalidade no segundo site, s\u00f3 temos de declarar as vari\u00e1veis como se segue:<\/p>\n<pre><code class=\"language-php\">$prefix_1 = 'second_';\n$prefix_2 = 'first_';\n<\/code><\/pre>\n<p>Ent\u00e3o, edite e instale o plugin no segundo site e crie um novo usu\u00e1rio ou altere uma fun\u00e7\u00e3o de usu\u00e1rio existente. Depois consulte o primeiro site. As fun\u00e7\u00f5es do usu\u00e1rio ser\u00e3o exatamente as mesmas do segundo site.<\/p>\n<h2>Resumo<\/h2>\n<p>Neste post, eu expliquei como conceder os mesmos privil\u00e9gios aos usu\u00e1rios em instala\u00e7\u00f5es WordPress independentes. Uma vez registrado em um site, o usu\u00e1rio poder\u00e1 acessar todos os sites que compartilham os mesmos usu\u00e1rios e tabelas de usermeta.<br \/>\n\u00c9 suposto eu trabalhar com novas instala\u00e7\u00f5es. Se voc\u00ea estiver trabalhando em sites existentes, voc\u00ea deve considerar que alguns plugins podem ter atualizado a tabela usermeta, ou mesmo criado novas tabelas armazenando dados relacionados ao usu\u00e1rio. Neste caso, uma an\u00e1lise mais precisa da base de dados seria apropriada.<\/p>\n<p>Se voc\u00ea tiver alguma d\u00favida sobre como compartilhar <a href=\"https:\/\/kinsta.com\/pt\/blog\/login-wordpress-url\/\">logins no WordPress<\/a>, ou se voc\u00ea gostaria de compartilhar sua experi\u00eancia conosco, sinta-se livre para participar da conversa postando seus coment\u00e1rios.<\/p>\n<p>O c\u00f3digo completo do nosso plugin est\u00e1 dispon\u00edvel <a href=\"https:\/\/gist.github.com\/carlodaniele\/dcaa60b3cf6145e7f242efea24a2d9f9\">neste Gist p\u00fablico.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In some situations you may want your site&#8217;s users to access another website with the same roles and with no need of additional subscription. In this post I will show you how to get the job done with Wordpress and what you have to know before you get your hands dirty.<\/p>\n","protected":false},"author":36,"featured_media":34332,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[30],"topic":[1034],"class_list":["post-34308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-wordpress","topic-seguranca-do-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites Wordpress<\/title>\n<meta name=\"description\" content=\"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites Wordpress\" \/>\n<meta property=\"og:description\" content=\"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-31T16:15:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-18T09:48:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/wp-content\/uploads\/2016\/09\/share-logins-wordpress.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites WordPress\",\"datePublished\":\"2020-01-31T16:15:10+00:00\",\"dateModified\":\"2025-02-18T09:48:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\"},\"wordCount\":1782,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png\",\"keywords\":[\"WordPress\"],\"articleSection\":[\"Desenvolvimento WordPress\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\",\"name\":\"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites Wordpress\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png\",\"datePublished\":\"2020-01-31T16:15:10+00:00\",\"dateModified\":\"2025-02-18T09:48:37+00:00\",\"description\":\"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png\",\"width\":1460,\"height\":730,\"caption\":\"Como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Seguran\u00e7a do WordPress\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/seguranca-do-wordpress\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites Wordpress","description":"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/","og_locale":"pt_PT","og_type":"article","og_title":"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites Wordpress","og_description":"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.","og_url":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2020-01-31T16:15:10+00:00","article_modified_time":"2025-02-18T09:48:37+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.","twitter_image":"https:\/\/kinsta.com\/wp-content\/uploads\/2016\/09\/share-logins-wordpress.png","twitter_creator":"@carlodaniele","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Carlo Daniele","Tempo estimado de leitura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites WordPress","datePublished":"2020-01-31T16:15:10+00:00","dateModified":"2025-02-18T09:48:37+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/"},"wordCount":1782,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png","keywords":["WordPress"],"articleSection":["Desenvolvimento WordPress"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/","url":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/","name":"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites Wordpress","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png","datePublished":"2020-01-31T16:15:10+00:00","dateModified":"2025-02-18T09:48:37+00:00","description":"Confira este post aprofundado sobre como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress com a mesma fun\u00e7\u00e3o e capacidades.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2020\/01\/logins-de-acoes.png","width":1460,"height":730,"caption":"Como compartilhar logins e usu\u00e1rios entre v\u00e1rios sites WordPress"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/compartilhar-logins-e-usuarios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Seguran\u00e7a do WordPress","item":"https:\/\/kinsta.com\/pt\/topicos\/seguranca-do-wordpress\/"},{"@type":"ListItem","position":3,"name":"Como Compartilhar Logins e Usu\u00e1rios Entre V\u00e1rios Sites WordPress"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/pt\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/34308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=34308"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/34308\/revisions"}],"predecessor-version":[{"id":47247,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/34308\/revisions\/47247"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/34308\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/34308\/translations\/fr"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/34308\/translations\/es"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/34308\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/34308\/translations\/de"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/34308\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/34332"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=34308"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=34308"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=34308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}