Pular para conteúdo

ADR-0005: Autenticação — Passport.js (NestJS)

Status

Accepted

Context and Problem Statement

O atenvi-bff precisa de uma camada de autenticação extensível que suporte múltiplas estratégias (JWT, OAuth, local) integrada ao ciclo de Guards do NestJS.

Decision Drivers

  • Integração nativa com NestJS Guards e Decorators
  • Suporte a múltiplas estratégias de autenticação
  • Ecossistema maduro com estratégias prontas

Considered Options

  • Passport.js via @nestjs/passport
  • Implementação manual com JWT
  • Auth.js (NextAuth) no frontend

Decision Outcome

Chosen option: Passport.js via @nestjs/passport, porque integra nativamente com o sistema de Guards do NestJS e permite adicionar estratégias (JWT, OAuth) sem refatoração.

Positive Consequences

  • Guards declarativos por rota/controller
  • Troca de estratégia sem mudar lógica de negócio
  • Suporte a JWT, refresh tokens, OAuth out-of-the-box

Negative Consequences

  • Lógica de auth concentrada no BFF — frontends dependem dele para sessão

More Information

  • Projeto: atenvi-bff
  • Estratégia inicial: JWT + refresh token