Adicionando o Provider
O primeiro passo será adicionar mais um login provider à nossa lista. Dessa vez vamos utilizar o nodemailer provider do next-auth. Vamos seguir a documentação tanto desta página como desta (prisma adapter)
Instalando as Dependências
Para isso, precisamos instalar as dependências:
Veja que instalamos tanto o prisma adapter como o nodemailer. O adapter serve para que o provider de email consiga escrever na nossa base de dados sem que precisemos criar nenhuma função. O nodemailer é o pacote responsável por enviar os emails de login por trás dos panos.
Configurando o Prisma Adapter
Para que tudo funcione automaticamente com o Prisma Adapter, precisamos adicionar algumas coisas no nosso schema
do Prisma (lembra dele?).
Abaixo o schema completo:
Preenchendo o .env
com dados do provedor de email
Vamos adicionar 5 novas chaves no nosso .env
:
É claro que você deverá preencher com os dados do seu host.
Feito isso, vamos adicionar nosso EmailProvider ao nosso arquivo auth.ts
.
Adicionando um novo provider ao auth.ts
.
Note algumas coisas:
- Precisamos forçar a estratégia de sessão para ser jwt (senão teremos um erro)
- Adicionamos o
PrismaAdapter
como adapter - Adicionamos o
EmailProvider
com os dados todos vindos do.env
.
Testando
Para termos certeza de que tudo está funcionando, vamos entrar na rota /api/auth/signin
e a tela deverá ser mais ou menos essa:
Coloque seu email e teste! Tudo deverá estar funcionando!
Maravilha, agora o último passo é configurar o nosso form customizado para o login por email.