refactor: Remove console logs and warnings from authentication and API handling
This commit is contained in:
@@ -38,13 +38,10 @@ async function refreshToken(): Promise<string | null> {
|
||||
|
||||
const refreshTokenValue = localStorage.getItem('refresh_token');
|
||||
if (!refreshTokenValue) {
|
||||
console.warn('🔄 No refresh token available');
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
console.log('🔄 [API] Intentando refrescar token...');
|
||||
|
||||
const response = await fetch(`${API_BASE_URL}/v1/auth/refresh`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@@ -75,7 +72,6 @@ async function refreshToken(): Promise<string | null> {
|
||||
|
||||
// Guardar los nuevos tokens
|
||||
if (data.access_token) {
|
||||
console.log('✅ [API] Token refrescado exitosamente');
|
||||
localStorage.setItem('access_token', data.access_token);
|
||||
|
||||
if (data.refresh_token) {
|
||||
@@ -147,8 +143,6 @@ async function fetchApi<T = any>(
|
||||
|
||||
// Si recibimos 401 o 403 y no es el endpoint de refresh, intentar refrescar el token
|
||||
if ((response.status === 401 || response.status === 403) && !endpoint.includes('/auth/refresh') && retryCount === 0) {
|
||||
console.warn(`⚠️ [API] ${response.status} recibido en ${endpoint}, intentando refrescar token...`);
|
||||
console.log(`⚠️ [API] Token actual disponible:`, token ? 'Sí (parcial: ' + token.substring(0, 20) + '...)' : 'No');
|
||||
isRefreshing = true;
|
||||
|
||||
try {
|
||||
@@ -156,13 +150,11 @@ async function fetchApi<T = any>(
|
||||
|
||||
if (newToken) {
|
||||
// Token refrescado exitosamente
|
||||
console.log(`✅ [API] Reintentando petición a ${endpoint} con nuevo token`);
|
||||
onTokenRefreshed(newToken);
|
||||
isRefreshing = false;
|
||||
// Reintentar la petición original con el nuevo token
|
||||
return await fetchApi<T>(endpoint, options, 1);
|
||||
} else {
|
||||
console.error(`❌ [API] No se pudo refrescar el token para ${endpoint}`);
|
||||
isRefreshing = false;
|
||||
// Retornar error 401 para que la capa superior lo maneje
|
||||
return {
|
||||
@@ -171,7 +163,6 @@ async function fetchApi<T = any>(
|
||||
};
|
||||
}
|
||||
} catch (refreshError) {
|
||||
console.error(`❌ [API] Error al refrescar token:`, refreshError);
|
||||
isRefreshing = false;
|
||||
return {
|
||||
error: 'Error al refrescar la sesión',
|
||||
|
||||
@@ -424,7 +424,6 @@ export const refreshAccessToken = async (): Promise<boolean> => {
|
||||
|
||||
const refreshToken = localStorage.getItem('refresh_token');
|
||||
if (!refreshToken) {
|
||||
console.warn('No refresh token available');
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -452,11 +451,9 @@ export const refreshAccessToken = async (): Promise<boolean> => {
|
||||
|
||||
// Actualizar también la cookie
|
||||
setCookie('access_token', newAccessToken);
|
||||
|
||||
console.log('✅ Token refreshed successfully');
|
||||
return true;
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error refreshing token:', error);
|
||||
await logout();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
const isSecure = window.location.protocol === 'https:';
|
||||
const secureFlag = isSecure ? '; Secure' : '';
|
||||
document.cookie = `access_token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=Lax${secureFlag}`;
|
||||
console.log('🧹 Cookies del cliente limpiadas');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ export type SSOProvider = 'microsoft' | 'google' | 'github';
|
||||
*/
|
||||
export const loginWithProvider = async (provider: SSOProvider): Promise<void> => {
|
||||
if (!browser) {
|
||||
console.warn('loginWithProvider solo funciona en el navegador');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,11 +39,6 @@ export const loginWithProvider = async (provider: SSOProvider): Promise<void> =>
|
||||
// URL de login de Keycloak con el provider específico
|
||||
const loginUrl = `${keycloakUrl}/realms/${realm}/protocol/openid-connect/auth?client_id=${clientId}&redirect_uri=${redirectUri}&response_type=code&scope=openid&kc_idp_hint=${provider}`;
|
||||
|
||||
console.log('🔐 Iniciando login con', provider);
|
||||
console.log('📍 URL de Keycloak:', keycloakUrl);
|
||||
console.log('🏰 Realm:', realm);
|
||||
console.log('🔑 Client ID:', clientId);
|
||||
|
||||
// Redirigir al usuario al proveedor SSO
|
||||
window.location.href = loginUrl;
|
||||
} catch (error) {
|
||||
|
||||
@@ -8,10 +8,6 @@ export const load: PageServerLoad = async ({ url, cookies }) => {
|
||||
const errorParam = url.searchParams.get('error');
|
||||
const errorDescription = url.searchParams.get('error_description');
|
||||
|
||||
console.log('🔄 [Callback Server] Procesando callback de autenticación');
|
||||
console.log('📝 [Callback Server] Código recibido:', code ? 'Sí' : 'No');
|
||||
console.log('📝 [Callback Server] State recibido:', state);
|
||||
|
||||
if (errorParam) {
|
||||
console.error('❌ [Callback Server] Error en autenticación:', errorParam, errorDescription);
|
||||
throw redirect(303, `/login?error=${encodeURIComponent(errorDescription || errorParam)}`);
|
||||
@@ -34,10 +30,6 @@ export const load: PageServerLoad = async ({ url, cookies }) => {
|
||||
// La redirect_uri debe coincidir exactamente con la registrada en Keycloak
|
||||
const redirectUri = `${url.origin}/auth/callback`;
|
||||
|
||||
console.log('🔄 [Callback Server] Intercambiando código por tokens...');
|
||||
console.log('📍 [Callback Server] Keycloak URL:', KEYCLOAK_URL);
|
||||
console.log('📍 [Callback Server] Redirect URI:', redirectUri);
|
||||
|
||||
const tokenEndpoint = `${KEYCLOAK_URL}/realms/${KEYCLOAK_REALM}/protocol/openid-connect/token`;
|
||||
|
||||
const body = new URLSearchParams({
|
||||
@@ -63,7 +55,6 @@ export const load: PageServerLoad = async ({ url, cookies }) => {
|
||||
}
|
||||
|
||||
const tokens = await tokenResponse.json();
|
||||
console.log('✅ [Callback Server] Tokens recibidos exitosamente');
|
||||
|
||||
// Establecer las cookies en el servidor (esto es lo importante)
|
||||
// Las cookies deben ser HttpOnly y Secure en producción
|
||||
@@ -87,8 +78,6 @@ export const load: PageServerLoad = async ({ url, cookies }) => {
|
||||
});
|
||||
}
|
||||
|
||||
console.log('✅ [Callback Server] Cookies establecidas exitosamente');
|
||||
|
||||
// Obtener la URL de redirección del state o ir al dashboard
|
||||
let redirectTo = '/dashboard';
|
||||
if (state) {
|
||||
@@ -100,8 +89,6 @@ export const load: PageServerLoad = async ({ url, cookies }) => {
|
||||
}
|
||||
}
|
||||
|
||||
console.log('🚀 [Callback Server] Redirigiendo a:', redirectTo);
|
||||
|
||||
// Redirigir a la página de destino
|
||||
throw redirect(303, redirectTo);
|
||||
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import { browser } from '$app/environment';
|
||||
|
||||
onMount(() => {
|
||||
if (browser) {
|
||||
console.log('🔄 [Callback Client] Esperando procesamiento del servidor...');
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<div class="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
|
||||
|
||||
@@ -24,9 +24,7 @@ export const load: LayoutServerLoad = async ({ cookies, url, fetch }) => {
|
||||
const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`;
|
||||
|
||||
// Validar el token con el backend para asegurar que sea válido
|
||||
try {
|
||||
console.log('🔐 [Dashboard] Validando token con:', `${baseUrl}v1/auth/me`);
|
||||
|
||||
try {
|
||||
const response = await fetch(`${baseUrl}v1/auth/me`, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${token}`
|
||||
@@ -34,9 +32,7 @@ export const load: LayoutServerLoad = async ({ cookies, url, fetch }) => {
|
||||
});
|
||||
|
||||
// Si el token está expirado (401) y tenemos refresh token, intentar refrescar
|
||||
if (response.status === 401 && refreshToken) {
|
||||
console.log('🔄 [Dashboard] Token expirado, intentando refrescar...');
|
||||
|
||||
if (response.status === 401 && refreshToken) {
|
||||
try {
|
||||
const refreshResponse = await fetch(`${baseUrl}v1/auth/refresh`, {
|
||||
method: 'POST',
|
||||
@@ -70,7 +66,6 @@ export const load: LayoutServerLoad = async ({ cookies, url, fetch }) => {
|
||||
|
||||
// Usar el nuevo token para obtener la info del usuario
|
||||
token = refreshData.access_token;
|
||||
console.log('✅ [Dashboard] Token refrescado exitosamente');
|
||||
|
||||
// Reintentar la validación con el nuevo token
|
||||
const retryResponse = await fetch(`${baseUrl}v1/auth/me`, {
|
||||
@@ -86,9 +81,7 @@ export const load: LayoutServerLoad = async ({ cookies, url, fetch }) => {
|
||||
user: userData
|
||||
};
|
||||
}
|
||||
} else {
|
||||
console.log('❌ [Dashboard] Refresh token también está expirado');
|
||||
}
|
||||
}
|
||||
} catch (refreshError) {
|
||||
console.error('🔐 [Dashboard] Error al refrescar token:', refreshError);
|
||||
}
|
||||
|
||||
@@ -30,13 +30,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
|
||||
}
|
||||
|
||||
// Normalizar la URL
|
||||
const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`;
|
||||
|
||||
console.log('📊 [Code Pedimento Regimens] Fetching data:', {
|
||||
url: `${baseUrl}v1/code-pedimento-regimens`,
|
||||
page,
|
||||
pageSize
|
||||
});
|
||||
const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`;
|
||||
|
||||
const response = await fetch(
|
||||
`${baseUrl}v1/code-pedimento-regimens?page=${page}&page_size=${pageSize}`,
|
||||
@@ -66,11 +60,6 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => {
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
console.log('📊 [Code Pedimento Regimens] Data loaded:', {
|
||||
total: data.total,
|
||||
itemsCount: data.items?.length
|
||||
});
|
||||
|
||||
return {
|
||||
items: data.items || [],
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
const localToken = localStorage.getItem('access_token');
|
||||
|
||||
if (cookieToken && cookieToken !== localToken) {
|
||||
console.log('🔄 [Page] Sincronizando token de cookies a localStorage');
|
||||
localStorage.setItem('access_token', cookieToken);
|
||||
}
|
||||
|
||||
@@ -36,7 +35,6 @@
|
||||
const localRefreshToken = localStorage.getItem('refresh_token');
|
||||
|
||||
if (cookieRefreshToken && cookieRefreshToken !== localRefreshToken) {
|
||||
console.log('🔄 [Page] Sincronizando refresh_token de cookies a localStorage');
|
||||
localStorage.setItem('refresh_token', cookieRefreshToken);
|
||||
}
|
||||
}
|
||||
@@ -57,18 +55,9 @@
|
||||
loading = true;
|
||||
error = null;
|
||||
|
||||
try {
|
||||
console.log(`📊 [Page] Cargando página ${currentPage + 1}...`);
|
||||
console.log(`📊 [Page] Token disponible:`, localStorage.getItem('access_token') ? 'Sí' : 'No');
|
||||
|
||||
try {
|
||||
const response = await codePedimentoRegimensApi.list(currentPage + 1, pageSize);
|
||||
|
||||
console.log(`📊 [Page] Respuesta recibida:`, {
|
||||
error: response.error,
|
||||
status: response.status,
|
||||
hasData: !!response.data
|
||||
});
|
||||
|
||||
if (response.error) {
|
||||
console.error('📊 [Page] Error en loadMore:', response.error, 'Status:', response.status);
|
||||
|
||||
@@ -85,8 +74,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
if (response.data?.items) {
|
||||
console.log(`📊 [Page] Cargados ${response.data.items.length} items adicionales`);
|
||||
if (response.data?.items) {
|
||||
// Agregar los nuevos items al array existente
|
||||
allItems = [...allItems, ...response.data.items];
|
||||
currentPage++;
|
||||
|
||||
Reference in New Issue
Block a user