Adicionar autenticação pode parecer complicado, mas com NextAuth.js e o App Router do Next.js, é possível integrar login seguro e flexível em poucos passos. Neste guia, vamos mostrar como configurar autenticação com GitHub em um projeto moderno usando o novo roteamento baseado em pastas (app/).
O que é o NextAuth.js?
O NextAuth.js é uma biblioteca de autenticação criada para projetos Next.js. Ela fornece suporte nativo a autenticação por redes sociais (como GitHub, Google), por e-mail com magic link e com credenciais personalizadas. É altamente configurável, escalável e se integra ao backend do Next.js por meio de rotas API.
Com a chegada do App Router no Next.js 13+, a integração mudou ligeiramente e ficou ainda mais clara para projetos modernos.
1. Instalação
Se ainda não tem um projeto Next.js com App Router, crie com:
Depois, instale o NextAuth.js:
2. Configurando as variáveis de ambiente
Crie um arquivo .env.local com os dados do OAuth do GitHub:
Você pode gerar o NEXTAUTH_SECRET com o comando:
3. Criando a configuração do NextAuth
Crie um arquivo em auth.config.ts na raiz do projeto:
4. Criando o handler da rota de autenticação
No App Router, as rotas são criadas dentro da pasta app/api/auth/[...nextauth]/route.ts. Crie esse arquivo com o seguinte conteúdo:
5. Provider de sessão
Envolva seu layout com o SessionProvider para que os dados da sessão estejam disponíveis globalmente. Crie um providers.tsx:
E importe no layout principal:
6. Exibindo o estado de autenticação no frontend
Você pode usar useSession, signIn e signOut em qualquer componente client:
Conclusão
Com o App Router e NextAuth.js, configurar autenticação moderna no Next.js ficou ainda mais simples. A nova estrutura facilita a organização e o uso de middlewares, layouts e sessão compartilhada entre componentes client e server.
Se você quiser evoluir a aplicação para suportar banco de dados com Prisma, login com e-mail ou credenciais personalizadas, posso mostrar como fazer isso em um post futuro.
Comentários
Postar um comentário