Skip to content

Feature S1-01-Auth - #15

Merged
Giomoret merged 3 commits into
mainfrom
feature/s1-01-auth
Sep 15, 2026
Merged

Giomoret merged 3 commits into
mainfrom
feature/s1-01-auth

Conversation

@Darkghostly

Copy link
Copy Markdown
Contributor

S1-01 — Domínio de identidade e autenticação

Implementa o domínio de identidade necessário aos PBIs:

  • PBI-06.1.1 — Autenticar usuário
  • PBI-06.1.2 — Encerrar sessão
  • PBI-06.1.3 — Bloquear acesso não autenticado

Implementado

  • Hash irreversível de senha com scrypt e salt aleatório
  • Usuários ativos e inativos
  • Papéis admin, po e dev
  • Limite configurável de tentativas de login
  • Bloqueio temporário após excesso de tentativas
  • Sessões persistidas e revogáveis
  • Token de sessão armazenado somente como hash
  • Expiração por inatividade
  • Expiração máxima absoluta da sessão
  • Cookie de sessão HttpOnly
  • Login via POST /api/v1/auth/login
  • Logout via POST /api/v1/auth/logout
  • Consulta da sessão via GET /api/v1/auth/me
  • Middleware requireAuth
  • Proteção das rotas de projetos
  • Autoria obtida pela sessão autenticada, sem confiar em x-user-id
  • Migration 004_identity_domain.sql
  • OpenAPI atualizado

Segurança

  • Credenciais inválidas retornam mensagem genérica
  • E-mail inexistente e senha incorreta não são diferenciados na resposta
  • Usuários inativos não conseguem iniciar sessão
  • Tokens de sessão não são retornados no JSON
  • Tokens não são armazenados em texto puro
  • Senhas e tokens não são expostos em logs

Testes

  • npm run typecheck
  • npm test
  • 45 testes passando
  • git diff --check origin/main...HEAD

Dependências

  • PRE-02
  • PRE-04

@Giomoret
Giomoret merged commit e0c5440 into main Sep 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants