Henrique, você diz uma rota privada na API do Next.js (endereços que ficam no /api/*
) ou uma página privada?
Uma pagina tipo para o usuario acessar somente Login Cadastro mais Home Perfil so vai ser mostrada se caso tenha feito o login nao encontrei uma solucao
Vejo duas formas:
Páginas estáticas + API
Caso você gere páginas estáticas usando o Next.js, você não pode inibir ninguém de acessar elas no sentido de conseguir baixar o arquivo HTML que gera o esqueleto dela. Dado a isso, você pode preencher os dados dessa página usando as rotas da API e essa rota poderá ser bloqueada por quem não estiver autenticado. E com isso, você pode fazer o frontend reagir a isso, notar que o acesso a alguma rota tomou um 401
e redirecionar para a página de login.
Server-side Rendering (SSR)
Isso é o modelo mais tradicional de páginas, onde a cada request você tem total controle sobre o processamento, decidindo liberar o acesso ou não enquanto a request do client
ainda está pendurada no server
.
Uma alternativa para páginas estáticas é usar Middleware (Beta) - Next.js
Ahhhh é verdade!!! Genial 😍 muito obrigado por trazer isso aqui Felipe 🤝
Mais como seria este bloqueio foda que tudo que coloca em pages/* no nextjs pode ser acessado pode ser bloqueado por sessao
Henrique, talvez seja melhor usar uma abstração como o NextAuth.js: https://next-auth.js.org/
Sugiro ir lendo a documentação deles sobre como implementar o que você deseja, ao invés de fazer algo do zero.