Autenticação com NextAuth, Prisma e Next.js 15
Assistir agora
1. Introdução
Sobre o Tutorial
Esse tutorial mostra o passo-a-passo para resolver o Mini Projeto SaaS - Autenticação com NextAuth, Prisma e Next.js 15.
Descrição do projeto
Neste mini projeto, você irá implementar a autenticação em um hipotético SaaS de Livros de Programação. Usaremos o NextAuth para gerenciar a autenticação e o Prisma para a interação com o banco de dados, enquanto nosso frameworks será o Next.js 15. O design já está preparado, e o foco será na implementação das funcionalidades sem a necessidade de modificar muito o HTML e o CSS.
🤓 Antes de começar
Para este projeto, já temos o template inicial do projeto preparado no repositório. Ao fazer o fork você encontrará todos os arquivos iniciais.
Apesar de, na Dashboard, existir citação à assinaturas, não é necessário se preocupar com assinaturas e pagamentos nesse Mini Projeto. O foco aqui é autenticação.
🔨 Requisitos
Faça a instalação e o setup do NextAuth v5 (a última versão é importante).
- O único provedor que você irá usar neste Mini Projeto é o
Credentials
(login com email e senha).
- O único provedor que você irá usar neste Mini Projeto é o
Crie e gerencie sua base de dados (sqlite, mysql ou postgres) usando o Prisma
Você precisará, pelo menos, de uma tabela de usuários
👀 Dicas:
- Consulte a documentação do NextAuth para entender como configurar o Prisma em conjunto com NextAuth.
Funcionalidade de registrar usuários usando a tela de cadastro
- Use, na medida do possível, server actions.
- Um usuário deverá possuir nome, email e senha.
- A senha deverá ser criptografada antes de ser salva na base de dados.
A tela de cadastro não pode ser acessível a usuários logados (redirecione ao dashboard)
👀 Dicas:
- O NextAuth auxilia apenas no login do usuário - a implementação do cadastro de usuário deverá ser feita por você.
Funcionalidade de logar usuários usando a tela de login
- Use, na medida do possível, server actions.
- Ao logar, redirecione o usuário para a tela de dashboard.
- A tela de login não pode ser acessível a usuários logados (redirecione ao dashboard)
Funcionalidade de deslogar o usuário.
Navegação e renderização condicional
- Na home, quando o usuário estiver logado, o botão da Navbar deverá ser
Dashboard
. Quando o usuário estiver deslogado, o botão deverá serLogin
. - Um usuário deslogado não poderá acessar a Dashboard.
- Um usuário logado não poderá acessar as telas de login e cadastro.
- Na home, quando o usuário estiver logado, o botão da Navbar deverá ser
🔨 Desafio extra para quem quer ir além
- Implemente uma página de perfil onde o usuário poderá visualizar e editar suas informações como nome e senha.
🎨 Design Sugerido
O layout está no Figma e já está implementado no projeto. Você não precisará implementá-lo.
Figma
👉🏽 Sobre esse mini-projeto
O que você irá praticar:
Next.js
- Conhecimentos sobre a configuração de páginas e rotas dinâmicas.
NextAuth
- Aprender sobre autenticação em aplicações Next.js.
- Integração do NextAuth com Prisma e base de dados.
Prisma
- Gerenciar banco de dados de forma eficiente e intuitiva.
- Criação de modelos e migrações com Prisma.
Pré requisitos
- Conhecimentos em JavaScript, React e NextJs.
Seu Instrutor
Aulas
- Introdução
- 1.
Introdução
01:02 - 2.
O que vamos construir
04:20 Template Inicial
02:48- Prisma e Base de Dados
- 4.
Instalando o Prisma
08:00 Ação de cadastro de usuários
08:52Prisma Client
02:40Finalizando a criação de novos usuários
07:34- Next 15 e useActionState()
Mostrando erros com useActionState
09:39- NextAuth / Auth.js
- 9.
Instalando o NextAuth
05:28 Configurando login com email e senha no NextAuth
03:05Implementando o login com NextAuth
12:37Ação de Login
08:00Tratando erros de login com useActionState
07:49Usando sessão para exibir páginas
05:40Logout
01:50Protegendo a rota dashboard
01:43Resolvendo erros
04:18Deixando tudo dinâmico com a sessão
06:33- Deploy com Vercel e Turso
Usando uma DB na nuvem (Turso)
12:00Fazendo o Deploy
05:09