diff --git a/src/controllers/authController.js b/src/controllers/authController.js index 130d6e7..cbcfebb 100644 --- a/src/controllers/authController.js +++ b/src/controllers/authController.js @@ -99,7 +99,7 @@ class AuthController { 'SELECT USE_EMPRESA_ID FROM USUARIOS_EMPRESA WHERE USE_USUARIO_ID = ?', [user.USU_CODIGO_ID] ); - const empresasIds = empresas.map(e => e.USE_EMPRESA_ID); + const empresasIds = empresas.map(e => Number(e.USE_EMPRESA_ID)).filter(n => !isNaN(n)); // Atualiza a data do último acesso await db.execute( diff --git a/src/controllers/clientController.js b/src/controllers/clientController.js index 78187bc..8beb08c 100644 --- a/src/controllers/clientController.js +++ b/src/controllers/clientController.js @@ -24,7 +24,7 @@ class ClientController { ); const empresas = result.map(row => ({ - id: row.EMP_CODIGO_ID, + id: Number(row.EMP_CODIGO_ID), nome: (row.EMP_NOME || '').trim(), nomeFantasia: (row.EMP_NOME_FANTASIA || '').trim(), })); diff --git a/src/middlewares/auth.js b/src/middlewares/auth.js index eb10309..708ed12 100644 --- a/src/middlewares/auth.js +++ b/src/middlewares/auth.js @@ -43,6 +43,13 @@ async function authenticateToken(req, res, next) { if (tokenSource !== 'usu_token') { try { const decoded = jwt.verify(token, authConfig.secret, { issuer: authConfig.issuer }); + // Normaliza as empresas para número (tokens antigos podem ter strings, + // o que quebra comparações do tipo empresas.includes(2)) + if (Array.isArray(decoded.empresas)) { + decoded.empresas = decoded.empresas + .map(function (e) { return Number(e); }) + .filter(function (n) { return !isNaN(n); }); + } req.user = decoded; req.authType = 'jwt'; return next(); @@ -103,7 +110,7 @@ async function authenticateToken(req, res, next) { 'SELECT USE_EMPRESA_ID FROM USUARIOS_EMPRESA WHERE USE_USUARIO_ID = ?', [user.USU_CODIGO_ID] ); - empresasIds = empresas.map(e => e.USE_EMPRESA_ID); + empresasIds = empresas.map(e => Number(e.USE_EMPRESA_ID)).filter(n => !isNaN(n)); } catch (e) { // Se a tabela não existir, ignora }