Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

417
Views
DOMException: no se pudo ejecutar 'atob' en 'Ventana': la cadena que se va a decodificar no está codificada correctamente. ¿El tamaño de la carga útil es un problema?

EDITAR: Funciona cuando reduzco el tamaño de la carga útil... ¿Por qué?

¿Qué diablos está pasando? ¿Por qué de repente dejó de funcionar?

Estoy tratando de decodificar un token JWT y aparece un error. Incluso VS Code muestra uno.

 The signature '(data: string): string' of 'atob' is deprecated.

¿Cómo es posible que atob trabaje en otro proyecto y no en este?

 let payload = tokenRaw.split(".")[1]; let decoded = atob(payload); let token = JSON.parse(decoded);

Aquí está la creación de JWT.

No funciona

 let token = jwt.sign( { username: req.body.username, companyKey: user.companyKey, companyName: user.companyName, discountGroup: user.discountGroup, isAdmin: false, }, config.tokenSecret, { expiresIn: tokenExpirationSeconds, } );

laboral

 let token = jwt.sign( { username: req.body.username, companyKey: user.companyKey, }, config.tokenSecret, { expiresIn: tokenExpirationSeconds, } );
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece que hay dos problemas en tu publicación en realidad. El mostrado por VS Code...

La firma '(data: string): string' de 'atob' está en desuso.

... no tiene nada que ver con el tiempo de ejecución y, por lo tanto, es constante. La causa raíz de esto se describe en un boleto abierto en la propia nave nodriza :

El problema es que las dos "sobrecargas" son idénticas en la firma, y la obsoleta del nodo se selecciona porque se cargó en último lugar. Si está escribiendo código DOM, realmente debería tratar de evitar tener tipos de nodos en su programa, pero somos muy conscientes de que esto es mucho más fácil decirlo que hacerlo y, a veces, imposible.

La solución sugerida es usar window.atob() en su lugar, para que TS sepa claramente que la firma del Nodo no debería ser aplicable.


El número que en realidad hizo un título -

La cadena a decodificar no está codificada correctamente.

... no es estático, y depende de cómo se prepare exactamente la carga útil. Parece estar algo relacionado con el problema descrito en este hilo , pero sin tener una entrada exacta, es difícil saberlo. También podría estar relacionado con el procesamiento inadecuado de los parámetros de solicitud, por ejemplo.

Entonces, la sugerencia es envolver este bloque de código en try-catch una forma u otra. Por ejemplo, si es una función...

 function decodeRawToken(tokenRaw) { try { let payload = tokenRaw.split(".")[1]; let decoded = atob(payload); let token = JSON.parse(decoded); return token; } catch(e) { console.error(`Failed to process token: ${tokenRaw}`); // you can send this token to some server-side logger instead } }

... para que siempre pueda detectar qué tokens le dieron problemas a su código, y negociar con sus creadores qué está mal con su generación.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!