diff --git a/package.json b/package.json index 9f9f8ffba..f65130f8b 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "global": "4.3.2", "handlebars": "4.0.11", "http-errors": "1.6.2", + "js-base64": "2.4.8", "js-string-escape": "1.0.1", "js-yaml": "3.11.0", "jsonwebtoken": "8.2.1", diff --git a/src/webui/components/Header/index.js b/src/webui/components/Header/index.js index 3bdecc330..9bcdcabcd 100644 --- a/src/webui/components/Header/index.js +++ b/src/webui/components/Header/index.js @@ -4,6 +4,7 @@ import isString from 'lodash/isString'; import isNumber from 'lodash/isNumber'; import capitalize from 'lodash/capitalize'; import {Link} from 'react-router-dom'; +import {Base64} from 'js-base64'; import API from '../../utils/api'; import storage from '../../utils/storage'; @@ -108,7 +109,7 @@ export default class Header extends React.Component { } try { - payload = JSON.parse(atob(payload)); + payload = JSON.parse(Base64.decode(payload)); } catch (err) { console.error('Invalid token:', err, token); // eslint-disable-line return false; diff --git a/yarn.lock b/yarn.lock index 26a0550b5..6b70bbd4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5425,6 +5425,10 @@ jest@23.2.0: import-local "^1.0.0" jest-cli "^23.2.0" +js-base64@2.4.8: + version "2.4.8" + resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033" + js-base64@^2.1.8, js-base64@^2.1.9: version "2.4.3" resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582"