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
# RegistroPOST /v1/auth/signup{ "email": "usuario@ejemplo.com", "password": "min8chars", "name": "Usuario" }
# LoginPOST /v1/auth/login{ "email": "usuario@ejemplo.com", "password": "mi_password" }
# Refresh tokenPOST /v1/auth/refresh{ "refreshToken": "eyJ..." }
# LogoutPOST /v1/auth/logoutAuthorization: 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" }}Magic Links
# Solicitar magic link (envía email)POST /v1/auth/magic-link{ "email": "usuario@ejemplo.com" }
# Verificar token del magic linkPOST /v1/auth/magic-link/verify{ "token": "ml_abc123..." }OAuth
# Iniciar flujo OAuthGET /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 tokensPOST /v1/auth/oauth/:provider/token{ "code": "...", "redirectUri": "https://tuapp.com/callback" }Usuarios
# Perfil del usuario autenticadoGET /v1/auth/meAuthorization: Bearer <access_token>
# Actualizar perfilPATCH /v1/auth/meAuthorization: Bearer <access_token>{ "name": "Nuevo Nombre" }
# Listar usuarios del proyecto (requiere API key)GET /v1/auth/usersAuthorization: Bearer <api_key>SDK
import { createClient } from '@nuvem/js';
const nuvem = createClient({ apiKey: process.env.NUVEM_API_KEY! });
// Signupconst { accessToken, user } = await nuvem.auth.signUp({ email: 'usuario@ejemplo.com', password: 'min8chars',});
// Loginconst session = await nuvem.auth.signIn({ email: 'usuario@ejemplo.com', password: 'mi_password',});
// Magic linkawait nuvem.auth.sendMagicLink({ email: 'usuario@ejemplo.com' });
// OAuthnuvem.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ódigo | Mensaje | Causa |
|---|---|---|
invalid_credentials | Email o password incorrecto | Credenciales incorrectas |
email_already_registered | El email ya está registrado | Usuario duplicado |
token_expired | El token expiró | Usar refresh token |
magic_link_expired | El magic link expiró | Links válidos por 15 min |