feat: version 4.3.0 -- Sesiones activas y pagina Mi cuenta
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,8 +9,10 @@
|
||||
|
||||
- Tipo: Bearer JWT (`Authorization: Bearer <token>`), emitido por `/api/auth/login`.
|
||||
- El backend revalida `is_active` del usuario en cada request (no solo la firma del JWT).
|
||||
- El JWT incluye `sv` (versión de sesión). Cambiar o restablecer la clave revoca los JWT
|
||||
anteriores; se responde `401` y el usuario vuelve a iniciar sesión.
|
||||
- El JWT incluye `sv` y `sid`. Cada petición valida la cuenta y la fila activa de `user_sessions`.
|
||||
Cambiar la clave conserva la sesión actual y cierra las demás; restablecerla cierra todas.
|
||||
Una sesión revocada responde `401` con `code: "SESSION_REVOKED"`; los JWT antiguos sin `sid`
|
||||
requieren volver a iniciar sesión tras aplicar la migración `033`.
|
||||
|
||||
## Formato de respuesta
|
||||
|
||||
@@ -50,11 +52,17 @@ el registro. En empresa y SMTP la respuesta `GET` incluye `edit_version`.
|
||||
- `POST /api/auth/reset-password` — público. `{ token, password }`.
|
||||
- `PUT /api/auth/change-password` — autenticado. `{ currentPassword, newPassword }`, exige la
|
||||
clave actual (distinto de `reset-password`, que usa un token de correo sin sesión).
|
||||
- `POST /api/auth/logout`
|
||||
- `POST /api/auth/logout` — revoca la sesión actual.
|
||||
- `GET /api/auth/me` — usuario actual
|
||||
- `GET /api/auth/sessions` — sesiones activas propias (`id`, navegador, SO, IP, fechas, `current`).
|
||||
- `DELETE /api/auth/sessions/:id` — cierra una sesión propia; la actual equivale a logout.
|
||||
- `POST /api/auth/sessions/revoke-others` — cierra las demás sesiones propias.
|
||||
|
||||
### Usuarios (`/api/users`) — lectura para cualquier autenticado; escritura solo Administrador/Superadministrador
|
||||
- `GET /api/users` · `POST /api/users` · `PUT /api/users/:id` · `PATCH /api/users/:id/active`
|
||||
- `GET /api/users/:id/sessions` · `DELETE /api/users/:id/sessions/:sessionId` ·
|
||||
`POST /api/users/:id/sessions/revoke-all` — solo admin/superadmin; un admin no puede administrar
|
||||
sesiones de un superadmin. Desactivar un usuario también revoca sus sesiones.
|
||||
- `POST /api/users/:id/approve` — `{ roleId?, departmentId?, editVersion }`, solo sobre usuarios `pending_approval`; también rechaza cambios concurrentes con `409`.
|
||||
- `POST /api/users/:id/reject` — borra al usuario `pending_approval` (se audita el email antes)
|
||||
- `GET /api/users/:id/modules` · `PUT /api/users/:id/modules` `{ modules: [...] }` — solo Superadministrador.
|
||||
|
||||
Reference in New Issue
Block a user