Português (Brasil)
  • passportjs
  • oidc
  • express

Integrando Passport.js com Logto

Um guia prático e exemplo para integrar Passport.js com Logto.

Sijie
Sijie
Developer

Passport.js é um middleware de autenticação para Node.js que pode ser integrado discretamente em qualquer aplicação web baseada em Express. Este guia abrangente se concentrará em utilizar o plugin passport-openidconnect, oferecendo uma maneira simples e eficaz de incorporar Logto com Passport.js. Ao longo deste tutorial, usaremos Express.js para construir nossa aplicação. Todo o código que discutiremos está disponível em um repositório público no GitHub.

Configurando express com sessão

Antes de mergulhar no processo de integração, precisamos configurar o projeto básico instalando Express.js e seu middleware de sessão.

Assumindo que você tem um ambiente de projeto TypeScript preparado (se não, consulte a documentação oficial do TypeScript), comece instalando os pacotes necessários:

Prepare o arquivo principal

Crie src/app.ts com o seguinte código:

Este script inicializa o app Express e configura o middleware cookieParser e session para gerenciamento de sessões baseadas em cookies, crucial para armazenar resultados de autenticação no Passport.js. Ele então usa o módulo http para lançar o serviço.

Criando uma aplicação Logto

Para prosseguir, é necessário um aplicativo Logto. Crie um visitando o Console Logto, navegando até “Aplicações” e clicando em “Criar aplicação”. Selecione “Express”, nomeie sua aplicação e clique em “Criar aplicação”.

Criar aplicação

Após concluir ou terminar de ler o guia de criação, você encontrará uma página detalhada com informações de configuração para os próximos passos.

Detalhe da aplicação

Configurando URIs

Na página de detalhes da aplicação, configure dois valores:

  1. Redirect URIs: Defina como http://localhost:3000/callback para alinhar com a rota de retorno do projeto.
  2. Post Sign-out Redirect URIs: Use http://localhost:3000 por simplicidade, direcionando os usuários para a página inicial após o logout.

Você pode alterar esses valores mais tarde.

Configurar Passport.js com as configurações da aplicação

Instale dependências

Instale passport e o plugin de estratégia OIDC, passport-openidconnect:

Prepare o arquivo de configuração

Crie app/config.ts para gerenciamento de configuração:

Configure as variáveis de ambiente de acordo:

Variável de AmbienteDescriçãoExemplo
APP_IDID do App do Logto4ukboxxxxxxxxx
APP_SECRETSegredo do App do Logto5aqccxxxxxxx
ENDPOINTEndpoint do Logtohttps://g5xxx.logto.app/

Inicialize Passport.js com a estratégia OIDC

Crie src/passport.ts

Este código inicializa o Passport com a OpenIDConnectStrategy. Os métodos serialize e deserialize são configurados para fins de demonstração.

Certifique-se de inicializar e anexar o middleware Passport na sua aplicação:

Construindo rotas de autenticação

Agora criaremos rotas específicas para processos de autenticação:

Entrar: /sign-in

Esta rota constrói e redireciona para uma rota de autenticação OIDC.

Lidar com o callback de entrada: /callback

Isso lida com o callback de entrada do OIDC, armazena tokens e redireciona para a página inicial.

Sair: /sign-out

Isso redireciona para a URL de término de sessão do Logto, depois de volta para a página inicial.

Obtendo o estado de autenticação e protegendo rotas

Desenvolva a página inicial com estado de autenticação:

Aqui, as informações do usuário são exibidas usando JSON.stringify, e a existência de request.user é usada para proteger rotas.

Conclusão

Parabéns por integrar Passport.js com Logto. Esperamos que este guia o ajude a migrar de sistemas existentes para o uso do Logto. Para uma experiência de autenticação aprimorada, considere experimentar o Logto Cloud hoje. Feliz codificação!