🔐 Fluxo de Login com Microserviço - Portal Juru API

📌 Rota de Login

URL: POST /api/v1/auth/login

Descrição: Autentica o usuário via microserviço e retorna um token JWT.

📤 Body (JSON)

{
  "username": "joelson.r",
  "password": "1010"
}

✅ Resposta (200 OK)

{
  "id": 1498,
  "sellerId": 2013,
  "name": "JOELSON DE BRITO RIBEIRO",
  "username": "JOELSON DE BRITO RIBEIRO",
  "storeId": "4",
  "email": "JOELSON.R@JURUNENSE.COM.BR",
  "token": "eyJhbGciOiJIUzI1NiIsInR5..."
}

❌ Resposta (401 Unauthorized)

{
  "success": false,
  "message": "Usuário ou senha inválidos.",
  "data": null,
  "error": "Usuário ou senha inválidos."
}

🧱 Camadas e Responsabilidades (CQRS + Microservice)

ComponenteResponsabilidade
AuthControllerRecebe requisição HTTP e envia AuthenticateUserCommand ao CommandBus
AuthenticateUserCommandRepresenta a intenção de autenticar um usuário
AuthenticateUserHandlerExecuta regras de autenticação com base no comando
UserRepositoryConsulta o banco para obter dados do usuário
Result<T>Encapsula sucesso ou falha com mensagens claras
AuthServiceGera token JWT e/ou Refresh Token
Auth MicroserviceEscuta o evento 'auth.login' e executa a autenticação
ClientProxyFaz chamada ao microserviço de autenticação

🔗 Comunicação via Microserviço

🛡️ Proteção com JWT

Após o login, o token JWT é retornado e deve ser enviado em todas as requisições protegidas.

Authorization: Bearer <token>

🚀 Melhorias Futuras

Última atualização: 31/03/2025