debug: add detailed logs for session restoration
This commit is contained in:
@@ -531,6 +531,7 @@ export class TrytonClient {
|
||||
*/
|
||||
async restoreSession(sessionToken: string): Promise<boolean> {
|
||||
try {
|
||||
console.log("🔐 restoreSession: Iniciando restauración...");
|
||||
// Parsear el token guardado
|
||||
const parts = sessionToken.split(":");
|
||||
if (parts.length < 3) {
|
||||
@@ -539,30 +540,37 @@ export class TrytonClient {
|
||||
|
||||
const [username, userId, ...sessionKeyParts] = parts;
|
||||
const sessionKey = sessionKeyParts.join(":"); // Por si el sessionKey tiene ":"
|
||||
console.log(`🔐 Token parseado: user=${username}, id=${userId}`);
|
||||
|
||||
// Establecer la sesión sin hacer login
|
||||
this.session = sessionToken;
|
||||
console.log("🔐 Session establecida en client:", this.session?.substring(0, 30) + "...");
|
||||
|
||||
// Actualizar la sesión en el connection pool
|
||||
// Actualizar la sesión en el connection pool ANTES de obtener proxy
|
||||
if (this.connection) {
|
||||
console.log("🔐 Actualizando sesión en connection pool...");
|
||||
this.connection.setSession(sessionToken);
|
||||
} else {
|
||||
throw new Error("No connection pool available");
|
||||
}
|
||||
|
||||
// Verificar que la sesión sigue siendo válida
|
||||
const proxy = this.connection?.getConnection();
|
||||
if (!proxy) {
|
||||
throw new Error("No connection available");
|
||||
}
|
||||
// Obtener proxy (ahora con la sesión ya actualizada)
|
||||
console.log("🔐 Obteniendo proxy con sesión actualizada...");
|
||||
const proxy = this.connection.getConnection();
|
||||
|
||||
// Test de validación de sesión
|
||||
try {
|
||||
console.log("🔐 Validando sesión con Tryton server...");
|
||||
await proxy.request("common.version", []);
|
||||
console.log("✅ Sesión restaurada exitosamente");
|
||||
this.connection.putConnection(proxy); // Devolver conexión al pool
|
||||
return true;
|
||||
} catch (error) {
|
||||
// Sesión inválida o expirada
|
||||
console.error("❌ Error en validación:", error);
|
||||
this.session = null;
|
||||
console.log("❌ Sesión inválida o expirada");
|
||||
this.connection.putConnection(proxy); // Devolver conexión al pool
|
||||
return false;
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user