Saltar al contenido principal

Guía de Integración de Autenticación

Esta guía muestra cómo implementar autenticación en tu aplicación usando la API de Console.

Ejemplo en React

import { useState, useEffect } from 'react';

const API_URL = 'https://api.console.solucao42.com.br/v1';

// Función de inicio de sesión
async function login(companySlug, email, password) {
const response = await fetch(`${API_URL}/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ company_slug: companySlug, email, password })
});

const data = await response.json();

// Almacenar tokens
localStorage.setItem('access_token', data.access_token);
localStorage.setItem('refresh_token', data.refresh_token);

return data.user;
}

// Renovar token
async function refreshToken() {
const refresh_token = localStorage.getItem('refresh_token');

const response = await fetch(`${API_URL}/auth/refresh`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ refresh_token })
});

const data = await response.json();

localStorage.setItem('access_token', data.access_token);
localStorage.setItem('refresh_token', data.refresh_token);

return data.access_token;
}

// Cliente de API con auto-renovación
async function apiRequest(endpoint, options = {}) {
let token = localStorage.getItem('access_token');

const response = await fetch(`${API_URL}${endpoint}`, {
...options,
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
...options.headers,
},
});

// Si es 401, intenta renovar el token
if (response.status === 401) {
token = await refreshToken();
return apiRequest(endpoint, options);
}

return response.json();
}

Ejemplo en Node.js

Consulta Referencia de la API: Autenticación para más detalles.