Este projeto é uma API de autenticação utilizando Fastify, Prisma, JWT e Zod para validação de dados.
git clone <URL_DO_REPOSITORIO>
cd nome-do-repositorioSe estiver utilizando pnpm (recomendado):
pnpm installSe estiver utilizando npm:
npm installSe estiver utilizando yarn:
yarn installCrie um arquivo .env na raiz do projeto e adicione as variáveis necessárias:
DATABASE_URL="postgresql://root:12345@localhost:5432/fastify-auth?schema=public"
JWT_SECRET="seu-segredo-aqui"O JWT_SECRET pode ser gerado no linux usando o seguinte comando:
openssl rand -base64 32Se desejar rodar o banco de dados via Docker, utilize o docker-compose.yml com o seguinte comando:
docker-compose up -dAntes de rodar a API, execute:
pnpm db:migrateSe estiver usando npm:
npm run db:migratePara rodar a API em modo de desenvolvimento:
pnpm devPara rodar com npm:
npm run devSe estiver usando yarn:
yarn devCria um novo usuário.
{
"email": "user@example.com",
"password": "senha123",
"name": "User Name"
}Gera um token de autenticação JWT.
{
"email": "user@example.com",
"password": "senha123"
}Gera um novo token de acesso a partir do refreshToken.
{
"refreshToken": "token-aqui"
}Exemplo de rota protegida.
{
"Authorization": "Bearer seu_token_aqui"
}Para criar uma rota autenticada, utilize o preHandler do Fastify:
fastify.get('/protected', {
preHandler: [fastify.authenticate]
}, async (request, reply) => {
return { message: 'Você acessou uma rota protegida!' };
});- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b minha-feature) - Faça o commit das suas alterações (
git commit -m 'feat: Minha nova funcionalidade') - Faça um push para a branch (
git push origin minha-feature) - Abra um Pull Request