Saltearse al contenido

Autenticación

Nuvem Auth maneja la autenticación de los usuarios finales de tu aplicación. Incluye email/password, OAuth (Google, GitHub) y magic links — todo sin configuración adicional.

Endpoints

Email + Password

Ventana de terminal
# Registro
POST /v1/auth/signup
{ "email": "usuario@ejemplo.com", "password": "min8chars", "name": "Usuario" }
# Login
POST /v1/auth/login
{ "email": "usuario@ejemplo.com", "password": "mi_password" }
# Refresh token
POST /v1/auth/refresh
{ "refreshToken": "eyJ..." }
# Logout
POST /v1/auth/logout
Authorization: Bearer <access_token>

Respuesta de signup/login:

{
"accessToken": "eyJ...",
"refreshToken": "eyJ...",
"expiresIn": 3600,
"user": {
"id": "usr_abc123",
"email": "usuario@ejemplo.com",
"name": "Usuario",
"createdAt": "2026-04-12T00:00:00.000Z"
}
}
Ventana de terminal
# Solicitar magic link (envía email)
POST /v1/auth/magic-link
{ "email": "usuario@ejemplo.com" }
# Verificar token del magic link
POST /v1/auth/magic-link/verify
{ "token": "ml_abc123..." }

OAuth

Ventana de terminal
# Iniciar flujo OAuth
GET /v1/auth/oauth/:provider/authorize?redirectUri=https://tuapp.com/callback
# provider: google | github
# Callback (manejado por Nuvem, redirige a redirectUri con code)
GET /v1/auth/oauth/:provider/callback?code=...
# Intercambiar code por tokens
POST /v1/auth/oauth/:provider/token
{ "code": "...", "redirectUri": "https://tuapp.com/callback" }

Usuarios

Ventana de terminal
# Perfil del usuario autenticado
GET /v1/auth/me
Authorization: Bearer <access_token>
# Actualizar perfil
PATCH /v1/auth/me
Authorization: Bearer <access_token>
{ "name": "Nuevo Nombre" }
# Listar usuarios del proyecto (requiere API key)
GET /v1/auth/users
Authorization: Bearer <api_key>

SDK

import { createClient } from '@nuvem/js';
const nuvem = createClient({ apiKey: process.env.NUVEM_API_KEY! });
// Signup
const { accessToken, user } = await nuvem.auth.signUp({
email: 'usuario@ejemplo.com',
password: 'min8chars',
});
// Login
const session = await nuvem.auth.signIn({
email: 'usuario@ejemplo.com',
password: 'mi_password',
});
// Magic link
await nuvem.auth.sendMagicLink({ email: 'usuario@ejemplo.com' });
// OAuth
nuvem.auth.signInWithOAuth({ provider: 'google', redirectUri: 'https://tuapp.com/callback' });

Tokens JWT

Los access tokens tienen una vida de 1 hora. Los refresh tokens duran 30 días. El payload del JWT incluye:

{
"sub": "usr_abc123",
"projectId": "proj_xyz",
"role": "user",
"exp": 1744516800
}

Errores comunes

CódigoMensajeCausa
invalid_credentialsEmail o password incorrectoCredenciales incorrectas
email_already_registeredEl email ya está registradoUsuario duplicado
token_expiredEl token expiróUsar refresh token
magic_link_expiredEl magic link expiróLinks válidos por 15 min