Boilerplate de Autenticação com Nuxt 3, MongoDB, TypeScript, Prisma, Tailwind, VeeValidate e JSON Web Tokens
Este é um projeto de boilerplate para autenticação de usuários utilizando Nuxt 3, MongoDB, TypeScript, Prisma, Tailwind, VeeValidate e JSON Web Tokens. Este boilerplate é ideal para quem deseja criar um sistema de login e autenticação completo com uma estrutura robusta e escalável.
Antes de começar, certifique-se de que o seguinte esteja instalado em sua máquina:
- Node.js
- NPM ou Yarn
- MongoDB
- Clone o repositório para sua máquina local usando o seguinte comando:
git clone https://github.com/gabrielcaiana/boilerplate-nuxt3-authentication.git
- Navegue até a pasta do projeto e instale as dependências usando NPM ou Yarn:
npm install
ou
yarn install
- Crie um arquivo .env na raiz do projeto com as seguintes variáveis de ambiente:
DATABASE_URL = 'mongodb url';
JWT_ACCESS_TOKEN_SECRET = 'my_token_secret_for_access_token';
JWT_REFRESH_TOKEN_SECRET = 'my_token_secret_for_refresh_token';
- Inicie o servidor de desenvolvimento usando o seguinte comando:
npm run dev
ou
yarn dev
- O servidor será iniciado em http://localhost:3000.
Este boilerplate inclui os seguintes endpoints:
/api/auth/login
: endpoint para fazer login de usuário e obter um token de acesso JWT./api/auth/register
: endpoint para criar uma nova conta de usuário./api/auth/user
: endpoint para obter informações do usuário atual autenticado./api/auth/refresh
: endpoint para renovar o token de acesso JWT expirado.
Todos os endpoints requerem autenticação por meio de um token de acesso JWT. O token deve ser enviado no cabeçalho Authorization de cada requisição, como Bearer {token}
.
Este boilerplate segue a estrutura de arquivos padrão do Nuxt 3. Além disso, a pasta api
contém os arquivos para lidar com as requisições da API. A estrutura de arquivos da pasta api
é a seguinte:
api/
-- auth/
---- login.post.ts
---- refresh.get.ts
---- register.post.ts
---- user.get.ts
-- index.ts
Este projeto utiliza as seguintes tecnologias:
Se você deseja contribuir para este projeto, sinta-se à vontade para enviar um pull request. Todas as contribuições são bem-vindas!
Este projeto é licenciado sob a licença MIT. Consulte