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/auth/signup público
Crear cuenta de usuario
Body (JSON)
emailstring · emailrequeridopasswordstringrequeridonamestringrequerido
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"
}/auth/login público
Iniciar sesión
Body (JSON)
emailstring · emailrequeridopasswordstringrequeridotwoFactorCodestring
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"
}/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"
}/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"
}/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"
}/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)
tokenstringrequeridopasswordstringrequerido
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"
}/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"
}