Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como faz para ter mais de uma rota privada no nextjs + next-auth

Quando eu acesso essas paginas (private/home e private/profile), elas quebram o processo no terminal dando esse erro:

Error parsing `/private/*` https://nextjs.org/docs/messages/invalid-route-source
Reason: Unexpected MODIFIER at 9, expected END

  /private/*
           ^

`source` parse failed for route {"source":"/private/*"}


Error: Invalid middleware found

Done in 420.06s.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

codigo do middleware:

export {default} from "next-auth/middleware";

export const config ={
  matcher: '/private/*'
};

Desde ja agradeço a atenção!!

1 resposta
solução!

Olá Samuel!

Parece que você está enfrentando um problema com a configuração de rotas privadas no Next.js utilizando o NextAuth. O erro que você está recebendo indica que há um problema na forma como você está definindo a propriedade matcher no seu middleware.

No Next.js, para definir rotas dinâmicas com parâmetros, você deve usar colchetes ([]) ao invés do asterisco (*). O asterisco não é um caractere válido para definir rotas dinâmicas no Next.js. Portanto, você deve ajustar o seu código para usar a sintaxe correta.

Aqui está como você pode corrigir o seu código de middleware para funcionar corretamente:

export { default } from "next-auth/middleware";

export const config = {
  matcher: '/private/:path*'
};

Neste caso, :path* é um parâmetro de rota dinâmico que irá corresponder a qualquer coisa após /private/, permitindo que você proteja múltiplas rotas sob o caminho /private/.

Além disso, certifique-se de que as rotas que você deseja proteger estejam dentro da pasta private na estrutura de diretórios do seu projeto Next.js, como parece ser o caso com base na imagem que você forneceu.

Espero que essa correção resolva o problema que você está enfrentando. Implemente a mudança sugerida e veja se as rotas privadas começam a funcionar como esperado. Espero ter ajudado e bons estudos!