Authentication
Registro, login (passport-local com email + password), logout, sessão atual e recuperação de senha. É o único domínio que emite JWTs.
Tag no Swagger: Auth · Auth: Public + JWT · 4 endpoints
POST/auth/register
Cria conta (usuário + organização + workspace) e retorna sessão JWT.
Request body
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
| string (email) | sim | Trim, max 255, lowercase forçado. | |
| password | string | sim | Min 8, max 128. |
| name | string | não | Trim, min 1, max 255. |
| organizationName | string | não | Trim, min 1, max 255. |
| workspaceName | string | não | Trim, min 1, max 255. |
Response
{ accessToken, user: { id, email, name?, organizationId, workspaceId, role } }Errors: 400 VALIDATION_ERROR
POST/auth/login
Autentica com email + password. Status real 200.
Request body
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
| string (email) | sim | Max 255. | |
| password | string | sim | Min 1, max 128 (aqui o mínimo é 1, não 8). |
Response
Mesmo envelope de register (accessToken + user).Errors: 401 (credencial inválida)
POST/auth/forgot-password
Solicita reset de senha. Sempre a mesma mensagem; resetToken só fora de produção.
Request body
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
| string (email) | sim | Max 255. |
Response
{ message, resetToken? (apenas fora de produção) }Errors: 400 VALIDATION_ERROR
POST/auth/reset-password
Redefine a senha com o token. Status real 204. Token inválido/expirado = 400.
Request body
| Campo | Tipo | Obrigatório | Regras |
|---|---|---|---|
| token | string | sim | Min 32, max 255. |
| password | string | sim | Min 8, max 128. |
Response
204 No ContentErrors: 400 (token inválido/expirado) · 400 VALIDATION_ERROR