Iniciar Sesión
Obtén un Access Token para autenticar tus peticiones a la API de Lummy.
Endpoint
POST /auth/login
Este endpoint intercambia tus credenciales de usuario (email y contraseña) por un token de acceso (JWT) que deberás incluir en todas las peticiones subsecuentes.
Headers
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
Content-Type | string | Sí | application/json |
Body Parameters
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
email | string | Sí | Tu correo electrónico registrado en Lummy. |
password | string | Sí | Tu contraseña. |
Ejemplos de Código
- cURL
- Node.js (TypeScript)
- Python
- PHP (Guzzle)
curl -X POST https://sandbox-api.lummy.com/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "usuario@empresa.com",
"password": "tu_password_seguro"
}'
import axios, { AxiosError } from 'axios';
interface LoginResponse {
accessToken: string;
expiresIn: number;
tokenType: string;
}
async function login(): Promise<string> {
const API_URL = 'https://sandbox-api.lummy.com/auth/login';
try {
const response = await axios.post<LoginResponse>(API_URL, {
email: 'usuario@empresa.com',
password: 'tu_password_seguro'
});
console.log('✅ Login exitoso');
console.log('Token:', response.data.accessToken);
return response.data.accessToken;
} catch (error) {
if (axios.isAxiosError(error)) {
console.error('❌ Error de login:', error.response?.data);
}
throw error;
}
}
Dependencias
npm install axios
import requests
def login():
url = "https://sandbox-api.lummy.com/auth/login"
payload = {
"email": "usuario@empresa.com",
"password": "tu_password_seguro"
}
try:
response = requests.post(url, json=payload)
response.raise_for_status()
data = response.json()
print("✅ Login exitoso")
print(f"Token: {data['accessToken']}")
return data['accessToken']
except requests.exceptions.RequestException as e:
print(f"❌ Error de login: {e}")
if e.response:
print(f"Detalle: {e.response.text}")
raise
Dependencias
pip install requests
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
$client = new Client();
try {
$response = $client->post('https://sandbox-api.lummy.com/auth/login', [
'json' => [
'email' => 'usuario@empresa.com',
'password' => 'tu_password_seguro'
]
]);
$data = json_decode($response->getBody(), true);
echo "✅ Login exitoso\n";
echo "Token: " . $data['accessToken'] . "\n";
} catch (RequestException $e) {
echo "❌ Error de login: " . $e->getMessage() . "\n";
}
Dependencias
composer require guzzlehttp/guzzle
Respuestas
200 OK
Login exitoso.
{
"accessToken": "eyJraWQiOiJ... (JWT truncado)",
"expiresIn": 3600,
"tokenType": "Bearer"
}
401 Unauthorized
Credenciales incorrectas.
{
"statusCode": 401,
"message": "Email o contraseña incorrectos",
"error": "Unauthorized"
}
Uso del Token
Una vez que tengas el accessToken, debes incluirlo en el header Authorization de todas tus peticiones protegidas:
Authorization: Bearer <tu_access_token>
Expiración del Token
El token tiene un tiempo de vida limitado (usualmente 1 hora). Deberás implementar una lógica para renovar el token (haciendo login nuevamente) cuando recibas un error 401 en otros endpoints o antes de que expire.