Auth

SheetCDN incluye un sistema de autenticación completo listo para usar. Cuando activas Auth en tu proyecto, se crea automáticamente una pestaña auth en tu Google Sheet donde se almacenan tus usuarios y contraseñas de manera cifrada utilizando el algoritmo (bycript).

Asegurate de incluir las credenciales en cada solicitud cuándo uses auth para reconocer la coockie de sessión

credentials: "include"

Register

POST /api/v1/auth/register

Crea un nuevo usuario. Requiere email y password. Puedes agregar cualquier campo adicional — se crearán como columnas nuevas en tu sheet automáticamente.

{
  // Obligatorios ( Requeridos )
  "email": "usuario@correo.com",
  "password": "segura123",
  // Puedes añadir campos adicionales ( Opcionales ) 
  "nombre": "opcional",
  "edad": "opcional"
}

Respuesta

{ 
    "status": "ok", 
    "user_id": "uuid", 
    "email": "usuario@correo.com" 
}

Login

POST /api/v1/auth/login

Inicia sesión y retorna una cookie HttpOnly. El navegador la envía automáticamente en cada request — no necesitas manejarla manualmente.

{
  "email": "usuario@correo.com",
  "password": "segura123"
}

Respuesta

{ 
    "status": "ok", 
    "message": "Login exitoso"
}

La cookie project_session se guarda automáticamente en el navegador y es la que identifica al usuario en sesión.

Change Password

PATCH /api/v1/auth/password

Ejemplo

{
  "current_password": "123456", 
  "new_password": "1234"
}

Respuesta

{
  "status": "ok",
  "message": "Contraseña actualizada"
}

Actualiza la contraseña es necesario enviar la contraseña actual current_password y la nueva contraseña new_password.

LogOut

POST /api/v1/auth/logout

Elimina la cookie de sesión del navegador.

Respuesta

{ 
    "status": "ok", 
    "message": "Logout exitoso" 
}

Auth (User)

GET /api/v1/auth/user

Retorna los datos del usuario autenticado en la sesión actual. No expone el password.

Respuesta

{
  "status": "ok",
  "user": {
    "user_id": "1359846c-f6f8-4757-968a-5b3575d08a0e",
    "email": "test1@test.com",
    "created_at": "2026-05-06T08:17:38.364267+00:00"
  }
}

¿Cómo funciona con tus tabs?

Cuando Auth está activo, y el scope es personal los tabs son marcados como protegidos requieren sesión activa para operar.

Cada usuario tiene un user_id único — úsalo para relacionar datos entre pestañas o filtrar registros por usuario. Puedes filtrar por usuario pasando el user_id como parámetro:

GET /api/v1/{tab}?user_id=uuid