Configurando o NextAuth
Vamos começar a “brincar” com o NextAuth e fazer um “login de mentirinha”.
Pra começar, vamos usar esse botão “Login Simples” e tentar fazer um fluxo de login, mesmo sem email e senha, apenas para vermos como é que podemos configurar o next-auth.
Mas antes, precisamos fazer as primeiras configurações básicas do NextAuth.
Vamos configurar o NextAuth
A documentação - no momento da escrita deste guia - não é das melhores. Algumas coisas você deve pinçar da página antiga (https://next-auth.js.org), outras da página nova (https://authjs.dev).
De qualquer forma, existem alguns passos para configurarmos a biblioteca. Vamos seguir eles, portanto.
1. O arquivo auth.ts
Esse é o arquivo mais importante. Ele deve estar na raiz da aplicação e irá conter todas as nossas configurações.
import NextAuth from 'next-auth';import Credentials from 'next-auth/providers/credentials';
export const {  handlers: { GET, POST },  auth,} = NextAuth({  providers: [Credentials],});Estamos exportanto os handlers (que servirão para mais tarde, você verá) e uma função chamada auth. Essa função é a principal função do nextAuth e servirá para fazermos a interface da nossa aplicação com nosso serviço de autenticação.
Esse arquivo está configurado da forma mais simples possível. Vamos incrementá-lo aos poucos durante o Workshop.
Por enquanto, vamos usar o provider de Credentials (email e senha).
2. Route Handlers
Route handlers no Next.js, em linhas simples, são as rotas “api”. Como estamos usando a pasta app do Next, vamos defini-los em um arquivo route.tsx.
No caso específico do NextAuth, vamos seguir esse guia.
A primeira coisa é criarmos um arquivo no caminho /app/api/auth/[...nextauth]/route.ts
E esse arquivo vai ficar bem simples também:
export { handlers as GET, handlers as POST };Aqui simplesmente pegamos os handlers que exportamos do nosso arquivo de configuração e jogamos para essa rota catch-all do NextAuth.
3. Arquivo .env (ou .env.local)
Agora, adicione a seguinte chave no .env:
AUTH_SECRET="qualquer-coisa-aqui"Vamos testar tudo?
Rotas do NextAuth
Veja que automaticamente o NextAuth cria para nós algumas páginas pré-prontas:
- signIn: ‘/api/auth/signin’
 - signOut: ‘/api/auth/signout’
 - error: ‘/api/auth/error’
 - verifyRequest: ‘/api/auth/verify-request’
 - newUser: ‘/api/auth/new-user’
 
E também algumas rotas de api:
- /api/auth/signin: Usada para iniciar uma sessão de login.
 - /api/auth/signout: Usada para encerrar uma sessão de login.
 - /api/auth/session: Usada para obter a sessão do usuário atual.
 - /api/auth/providers: Usada para obter a lista de provedores de autenticação disponíveis.
 - /api/auth/callback: Usada para lidar com callbacks de provedores de autenticação.
 - /api/auth/csrf: Usada para obter o token CSRF.
 - /api/auth/verify-request: Usada para enviar um email de verificação.
 - /api/auth/error: Usada para lidar com erros de autenticação
 
Testando com algumas rotas
Dá uma olhada nas seguintes páginas:
localhost:3000/api/auth/providers.localhost:3000/api/auth/signin.
Se você conseguiu ver essas duas páginas sem nenhum erro, significa que tudo está funcionando!