Auth

Login, refresh, sesión y multifactor. Punto de entrada del dashboard y de cualquier integración interactiva.

Base path: /auth·7 endpoints·Source: mosend-wb-backend/src/modules/auth/auth.controller.ts
POST/auth/signup
público

Crear cuenta de usuario

Body (JSON)

  • emailstring · emailrequerido
  • passwordstringrequerido
  • namestringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/auth/signup' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com","password": "<password>","name": "<name>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/login
público

Iniciar sesión

Body (JSON)

  • emailstring · emailrequerido
  • passwordstringrequerido
  • twoFactorCodestring

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/login' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com","password": "<password>","twoFactorCode": "<twoFactorCode>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "info@empresa.com",
    "password": "••••••••"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/refresh
público

Renovar tokens (rotación)

Body (JSON)

  • refreshTokenstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/refresh' \
  -H 'Content-Type: application/json' \
  -d '{"refreshToken": "<refreshToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/logout
público

Cerrar sesión (revoca el refresh token)

Body (JSON)

  • refreshTokenstringrequerido

Respuestas

  • 204
curl -X POST 'https://api.mosend.dev/auth/logout' \
  -H 'Content-Type: application/json' \
  -d '{"refreshToken": "<refreshToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/forgot-password
público

Solicita un email de recuperación de contraseña. Por seguridad SIEMPRE responde 200 — no revela si el email existe o no en el sistema.

Body (JSON)

  • emailstring · emailrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/forgot-password' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/reset-password
público

Canjea el token recibido por email + nueva contraseña. Si el token es inválido/expirado lanza 401. Tras éxito se revocan todas las sesiones activas del usuario (logout en todos los dispositivos).

Body (JSON)

  • tokenstringrequerido
  • passwordstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/reset-password' \
  -H 'Content-Type: application/json' \
  -d '{"token": "<token>","password": "<password>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/impersonate-redeem
público

Canjea un ImpersonationToken (creado por staff via /admin/impersonate) por una sesión válida del target user. El JWT resultante lleva el flag `impersonatedBy` para que el frontend muestre banner persistente.

Body (JSON)

  • tokenstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/impersonate-redeem' \
  -H 'Content-Type: application/json' \
  -d '{"token": "<token>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}