Adicionar autenticação ao seu site WordPress com o plugin Logto
Este tutorial mostrará como integrar o Logto ao seu site WordPress com nosso plugin oficial do WordPress.
Pré-requisitos
- Uma conta Logto Cloud ou um Logto auto-hospedado.
- Um aplicativo tradicional Logto criado.
- Um projeto WordPress: siga o guia oficial de instalação do WordPress para configurar seu site WordPress antes de prosseguir.
Integração
Instalar o plugin
No momento, nosso plugin ainda está em revisão e não está disponível no diretório de plugins do WordPress. Atualizaremos esta página assim que estiver disponível.
- A partir do upload
- Baixe o plugin Logto para WordPress de um dos seguintes links:
- Última versão: Baixe o arquivo cujo nome está no formato
logto-plugin-<version>.zip
.
- Última versão: Baixe o arquivo cujo nome está no formato
- Baixe o arquivo ZIP do plugin.
- Vá para Plugins > Adicionar Novo no painel de administração do WordPress.
- Clique em Enviar Plugin.
- Selecione o arquivo ZIP baixado e clique em Instalar Agora.
- Clique em Ativar.
Configurar o plugin
Agora você deve ver o menu Logto na barra lateral do painel de administração do WordPress. Clique em Logto > Configurações para configurar o plugin.
Você deve ter um aplicativo web tradicional criado no Logto Console antes de configurar o plugin. Se você ainda não criou um, consulte Integrar Logto ao seu aplicativo para mais informações.
A configuração mínima para começar com o plugin é:
- Endpoint do Logto: O endpoint do seu tenant Logto.
- ID do aplicativo: O ID do aplicativo do seu Logto.
- Segredo do aplicativo: Um dos segredos válidos do seu aplicativo Logto.
Todos os valores podem ser encontrados na página de detalhes do aplicativo no Logto Console.
Após preencher os valores, clique em Salvar Alterações (role até o final da página se não encontrar o botão).
Configurar URI de redirecionamento
O URI de redirecionamento é a URL para a qual o Logto redirecionará os usuários após serem autenticados; e o URI de redirecionamento pós logout é a URL para a qual o Logto redirecionará os usuários após saírem.
Aqui está um diagrama de sequência não normativo para ilustrar o fluxo de login:
Aqui está como o fluxo de logout se parece em um diagrama de sequência não normativo:
Para saber mais sobre por que o redirecionamento é necessário, veja Experiência de login explicada.
No nosso caso, precisamos configurar ambos os URIs de redirecionamento no seu Logto Console. Para encontrar o URI de redirecionamento, vá para a página Logto > Configurações no painel de administração do WordPress. Você verá os campos Redirect URI e Post sign-out redirect URI.
- Copie os valores de Redirect URI e Post sign-out redirect URI e cole-os nos campos Redirect URIs e Post sign-out redirect URIs no seu Logto Console.
- Clique em Salvar alterações no Logto Console.
Ponto de verificação: Teste seu site WordPress
Agora você pode testar sua integração Logto no seu site WordPress:
- Abra uma janela anônima do navegador, se necessário.
- Visite seu site WordPress e clique no link Log in, se aplicável; ou visite diretamente a página de login (por exemplo,
https://example.com/wp-login.php
). - A página deve redirecioná-lo para a página de login do Logto.
- Complete o processo de login ou cadastro.
- Após a autenticação bem-sucedida, você deve ser redirecionado de volta para o seu site WordPress e logado automaticamente.
- Clique no link Log out para sair do seu site WordPress.
- Você deve ser redirecionado para a página de logout do Logto e, em seguida, de volta para o seu site WordPress.
- Você deve estar deslogado do seu site WordPress.
Configurações de autenticação
Embora o plugin funcione imediatamente, você pode personalizar as configurações de autenticação na página de configurações do plugin Logto para melhor atender às suas necessidades.
Escopos (Scopes)
Logto usa escopos para controlar quais informações são compartilhadas com seu aplicativo. O plugin Logto WordPress usa o Logto PHP SDK para lidar com o processo de autenticação, que inclui os seguintes escopos por padrão:
openid
: O escopo básico necessário para OpenID Connect.profile
: Para obter as informações básicas do perfil do usuário.offline_access
: Para obter um token de atualização para acesso offline.
Para mais informações sobre escopos, veja Escopos e reivindicações.
O plugin também adiciona dois escopos adicionais por padrão:
email
: Para obter o endereço de email do usuário.roles
: Para obter os papéis do usuário no Logto.
Esses dois escopos são usados para mapear o email e os papéis do Logto para o email e os papéis do WordPress. Você pode personalizar os escopos editando o campo Scopes nas configurações do plugin.
Se você remover o escopo email
ou roles
, alguns recursos do plugin não funcionarão corretamente.
Parâmetros extras
Você pode querer adicionar alguns parâmetros extras à solicitação de autenticação para personalizar o processo de autenticação. Por exemplo, você pode adicionar o parâmetro first_screen
para decidir qual tela mostrar primeiro no processo de autenticação.
Para mais informações sobre parâmetros extras, veja Parâmetros de autenticação.
Exigir email verificado
Por padrão, o plugin exige que os usuários tenham um endereço de email verificado no Logto para fazer login no seu site WordPress. Se um usuário tentar fazer login sem um endereço de email verificado, o plugin lançará um erro.
Você pode desativar esse recurso desmarcando a opção Exigir email verificado nas configurações do plugin.
Exigir ID de organização
Você pode exigir que os usuários tenham uma associação específica de organização no Logto para fazer login no seu site WordPress. Quando um ID de organização é especificado, o plugin verificará se o usuário possui o ID de organização especificado em seu token de ID. Caso contrário, um erro será lançado.
Para saber mais sobre organizações, veja Organizações.
Configurações de autorização
Além da autenticação, o Logto também fornece recursos de autorização, como controle de acesso baseado em papel (RBAC). Embora seja necessário algum código personalizado para implementar o RBAC se você estiver desenvolvendo seu próprio aplicativo, o plugin Logto WordPress fornece uma maneira integrada de mapear papéis do Logto para papéis do WordPress.
Mapeamento de papéis
O plugin Logto WordPress permite mapear papéis do Logto para papéis do WordPress. Isso significa que você pode atribuir diferentes papéis a usuários no Logto, e o plugin atribuirá automaticamente os papéis correspondentes do WordPress a esses usuários quando eles fizerem login.
Para mapear papéis, clique em Adicionar na seção Mapeamento de papéis para adicionar um novo mapeamento de papéis. Por exemplo, se você quiser mapear o papel group:editors
no Logto para o papel Editor
no WordPress, você pode fazer isso adicionando um novo mapeamento de papéis com os seguintes valores:
- Papel Logto:
group:editors
- Papel WordPress:
editor
(o slug do papelEditor
no WordPress)
Você pode encontrar os slugs de papel de todos os papéis do WordPress na documentação de Papéis e Capacidades.
Os slugs de papel são sensíveis a maiúsculas e minúsculas. Se você digitar o nome do papel como Editor
em vez de editor
, o mapeamento de papéis não funcionará.
Agora, vá para o Console do Logto e clique em Papéis na barra lateral esquerda. Crie um novo papel chamado group:editors
e atribua-o a um usuário. Em seguida, faça login no seu site WordPress com esse usuário. Você deve ver que o usuário foi atribuído ao papel Editor
no WordPress.
Se o usuário já tiver feito login no seu site WordPress, o mapeamento de papéis não terá efeito até que o usuário saia e faça login novamente.
Você também pode adicionar múltiplos mapeamentos de papéis para mapear múltiplos papéis do Logto para papéis do WordPress. No momento, o plugin tentará mapear os papéis com a ordem de precedência. Por exemplo, se você tiver os seguintes mapeamentos de papéis:
- Papel Logto:
group:editors
, Papel WordPress:editor
- Papel Logto:
group:authors
, Papel WordPress:author
- Papel Logto:
group:subscribers
, Papel WordPress:subscriber
E um usuário tiver os papéis group:editors
e group:authors
no Logto, o usuário será atribuído ao papel Editor
no WordPress.
Configurações avançadas
Lembrar sessão
Por padrão, o plugin lembrará a sessão do usuário por 2 semanas. Isso significa que se um usuário fizer login no seu site WordPress, ele não será solicitado a fazer login novamente por 2 semanas. Você pode reduzir esse tempo para 2 dias desmarcando a opção Lembrar sessão nas configurações do plugin.
Sincronizar perfil
Por padrão, o plugin sincronizará o perfil do usuário a cada login. Isso significa que se um usuário fizer login no seu site WordPress, seu perfil será atualizado com as informações mais recentes do Logto. Você pode desativar esse recurso desmarcando a opção Sincronizar perfil nas configurações do plugin.
Se você desativar esse recurso, o mapeamento de papéis só terá efeito quando o usuário fizer login pela primeira vez.
Login com formulário do WordPress
Por padrão, você pode adicionar ?form=1
ao URL de login do WordPress para usar o login com formulário do WordPress. Isso é útil para fins de teste, mas você pode desativar esse recurso se não quiser permitir que os usuários façam login com o formulário do WordPress.
Estratégia de nome de usuário
Existem várias maneiras de gerar um nome de usuário para um usuário no WordPress. É seguro usar a estratégia padrão quando você confia no email como o identificador único de um usuário.
Solução de problemas
URL de callback mostra 404
Se o URL de callback mostrar um erro 404, é provável que suas regras de reescrita do WordPress estejam desatualizadas e precisem ser atualizadas manualmente. Para fazer isso, vá para Configurações > Links permanentes no painel de administração do WordPress (ou visite /wp-admin/options-permalink.php
diretamente) e clique em Salvar alterações.
Perguntas frequentes
Como posso acionar o fluxo de esqueci minha senha?
Existem duas maneiras de acionar o fluxo de esqueci minha senha:
- Clique no link de esqueci minha senha na página de login do Logto.
- Adicione
?action=lostpassword
ao URL de login do WordPress. Por exemplo,https://example.com/wp-login.php?action=lostpassword
. Isso o redirecionará para a página de esqueci minha senha do Logto.
Como posso usar o login com formulário do WordPress?
Por padrão, você pode adicionar ?form=1
ao URL de login do WordPress para usar o login com formulário do WordPress. Por exemplo, https://example.com/wp-login.php?form=1
.
Se você quiser desativar esse recurso, pode desmarcar a opção Login com formulário do WordPress nas configurações do plugin.