Este projeto é uma aplicação de exemplo em NestJS que implementa autenticação de usuários utilizando bcrypt, Passport, JWT e cookies. A aplicação permite que usuários se registrem, façam login e acessem rotas protegidas.
- Registro de Usuários: Permite que novos usuários se registrem com uma senha criptografada.
- Login de Usuários: Autentica usuários e gera um token JWT armazenado em um cookie HTTP-only.
- Rota Protegida: Apenas usuários autenticados podem acessar rotas protegidas, como o perfil do usuário.
-
Clone o repositório:
git clone https://github.com/seu-usuario/auth-app.git cd auth-app
-
Instale as dependências:
npm install
-
Inicie a aplicação:
npm run start
A aplicação estará disponível em
http://localhost:3000
.
Após configurar a autenticação, vamos testar os endpoints utilizando ferramentas como Postman ou cURL.
Requisição:
POST /auth/register
Content-Type: application/json
{
"username": "diogo",
"password": "senhaSegura123"
}
Resposta:
{
"message": "Usuário registrado com sucesso",
"user": {
"id": 1,
"username": "diogo",
"password": "$2b$10$..."
}
}
Requisição:
POST /auth/login
Content-Type: application/json
{
"username": "diogo",
"password": "senhaSegura123"
}
Resposta:
{
"message": "Login realizado com sucesso"
}
Cookie:
Set-Cookie: jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6...; HttpOnly
Requisição:
GET /users/profile
Cookie: jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6...
Resposta:
{
"userId": 1,
"username": "diogo"
}
Sinta-se à vontade para contribuir com melhorias ou reportar issues.
Este projeto está licenciado sob a licença MIT.